Spec-Zone.ru › MySQL Shell 9.2

11.1.5 Запуск отчетов MySQL Shell

Встроенные отчеты и определенные пользователем отчеты, которые были зарегистрированы в MySQL Shell, могут быть запущены в любом интерактивном режиме MySQL Shell (JavaScript, Python или SQL) с помощью команды \show или \watch, или вызваны с помощью объекта shell.reports из скриптов JavaScript или Python. Команда \show или команда \watch без параметров отображает все доступные встроенные и определенные пользователем отчеты.

Использование команд Show и Watch

Для использования команд \show и \watch должна быть доступна активная сессия MySQL.

Команда \show запускает указанный отчет, который может быть встроенным отчетом MySQL Shell или определенным пользователем отчетом, зарегистрированным в MySQL Shell. Вы можете указать любые параметры или дополнительные аргументы, которые поддерживает отчет. Например, следующая команда запускает встроенный отчет query, который принимает в качестве аргумента одно SQL-предложение:

\show query show session status

Имя отчета нечувствительно к регистру, а символы дефиса и подчеркивания рассматриваются как одинаковые.

Команда \show также предоставляет следующие стандартные параметры:

  • --vertical (или -E) отображает результаты из отчета, возвращающего список в вертикальном формате вместо табличного.

  • --help отображает любую предоставленную справку по указанному отчету. (В качестве альтернативы вы можете использовать команду \help с именем отчета, которая отображает справку по функции отчета.)

Стандартные параметры и параметры, специфичные для отчета, указываются перед аргументами. Например, следующая команда запускает встроенный отчет query и возвращает результаты в вертикальном формате:

\show query --vertical show session status

Команда \watch запускает отчет таким же образом, как и команда \show, но затем обновляет результаты с регулярными интервалами до тех пор, пока вы не отмените команду, используя Ctrl + C. Команда \watch имеет дополнительные стандартные параметры для управления поведением обновления, как показано ниже:

  • --interval=float (или -i float) указывает количество секунд ожидания между обновлениями. По умолчанию значение равно 2 секундам. Можно указывать дробные секунды с минимальным интервалом 0,1 секунды и максимальным интервалом 86400 секунд (24 часа).

    --nocls указывает, что экран не очищается перед обновлениями, поэтому предыдущие результаты все еще видны.

Например, следующая команда использует встроенный отчет query для отображения счетчиков инструкций и обновления результатов каждые 0,5 секунды:

\watch query --interval=0.5 show global status like 'Com%'

Кавычки интерпретируются обработчиком команды, а не непосредственно сервером, поэтому, если они используются в запросе, их необходимо экранировать, добавив перед ними обратный слэш (\).

Использование объекта shell.reports

Встроенные отчеты MySQL Shell и определенные пользователем отчеты, которые были зарегистрированы в MySQL Shell, также могут быть доступны как функции API в объекте shell.reports. Объект shell.reports доступен в режимах JavaScript и Python и использует имя отчета, предоставленное при регистрации, в качестве имени функции. Функция имеет следующий синтаксис:

Dict report(Session session, List argv, Dict options);

Где:

  • session — это объект сессии MySQL Shell, который используется для выполнения отчета.

  • argv — список, содержащий строковые значения дополнительных аргументов, которые передаются в отчет.

  • options — словарь с именами ключей и значениями, соответствующими параметрам, специфичным для отчета, и их значениями. Короткая форма параметров не может быть использована с объектом shell.reports.

Возвращаемое значение — это словарь с ключом report и списком JSON-объектов, содержащих отчет. Для отчетов типа Список — элемент для каждого списка, для отчетов типа Отчет — один элемент, для отчетов типа Печать — нет элементов.

При использовании объекта shell.reports, если словарь параметров присутствует, список argv требуется даже если дополнительных аргументов нет. Используйте команду \help report_name для отображения справки по функции отчета и проверки необходимости аргументов или параметров в отчете.

Например, следующий код запускает определенный пользователем отчет с именем sessions, который показывает текущие сессии. Создается объект сессии MySQL Shell для выполнения отчета. Использование параметра, специфичного для отчета, для ограничения количества возвращаемых строк до 10. Дополнительных аргументов нет, поэтому список argv присутствует, но пуст.

report = shell.reports.sessions(shell.getSession(), [], {'limit':10});

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/mysql-shell-reporting-run.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API