Spec-Zone.ru › MySQL Shell 8.4

10.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-8.4-en/mysql-shell-reporting-run.html

Spec-Zone.ru

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