11.8.3 Утилита collectSlowQueryDiagnostics
О программе
util.debug.collectSlowQueryDiagnostics() выполняет несколько итераций сбора диагностической информации о вашем сервере MySQL, позволяя проанализировать различные аспекты сервера во время обработки указанного запроса.
Отчёт о диагностике генерируется в формате zip-архива в текущей папке или в указанном пути.
Утилита генерирует файлы в формате TSV и YAML.
Требования и ограничения
Для использования утилиты сбора диагностики требуется следующее:
Необходима версия MySQL 5.7 или более поздняя.
Утилита должна запускаться от имени root.
Запуск утилиты
Утилита диагностики имеет следующую сигнатуру:
util.debug.collectSlowQueryDiagnostics("path", "query", {options})
Возвращаемые данные этой утилиты также включают в себя данные, собираемые по умолчанию util.debug.collectDiagnostics() и util.debug.collectHighLoadDiagnostics().
-
": место, куда сохраняется архив диагностики. Если пусто, сохраняется в текущей папке.path"": SQL запрос для анализа.query"": словарь необязательных аргументов. См. Параметры сбора диагностики.options"
Помимо данных, содержащихся в архиве диагностики util.debug.collectHighLoadDiagnostics(), утилита util.debug.collectSlowQueryDiagnostics собирает следующую информацию:
Результат выполнения запроса в формате
EXPLAIN.Трассировку оптимизатора запроса.
DDL таблиц, используемых в запросе.
Предупреждения, сгенерированные запросом.
Параметры сбора диагностики
- delay:
number Количество секунд ожидания между итерациями сбора данных. Значение по умолчанию — 30. Сбор данных производится только пока указанный запрос выполняется. После завершения запроса, сбор данных останавливается.
- innodbMutex: true | false
Если true, также собирается вывод
SHOW ENGINE INNODB MUTEX. По умолчанию эта команда отключена, так как может повлиять на производительность в рабочей среде.- pfsInstrumentation: [current | medium | full]
-
Определяет, какие инструменты и потребители Performance Schema используются. Возможные значения:
current: Значение по умолчанию. Текущие активные инструменты и потребители Performance Schema. Конфигурация сервера не изменяется.medium: Включает всех потребителей, кроме%historyи%history_long, и все инструменты, кромеwait/synch/%.full: Включает всех потребителей и все инструменты.
- customSql:
array -
Одна или несколько SQL команд для выполнения. Вы можете управлять моментом их выполнения с помощью следующих префиксов:
BEFORE, или ничего: Значение по умолчанию. Пользовательский SQL выполняется один раз, до начала итераций сбора метрик.AFTER: Пользовательский SQL выполняется один раз, после завершения итераций сбора метрик.DURING: Пользовательский SQL выполняется один раз за каждую итерацию сбора метрик.
Пример:
{"customSql": ["statement1", "statement2", "statement3"]} - customShell:
array -
Одна или несколько команд оболочки (DOS, BOURNE и т. д.) для выполнения. Вы можете управлять моментом их выполнения с помощью следующих префиксов:
BEFORE: Значение по умолчанию. Команда(ы) выполняется один раз, до начала итераций сбора метрик.DURING: Команда(ы) выполняется один раз за каждую итерацию сбора метрик.AFTER: Команда(ы) выполняется один раз, после завершения итераций сбора метрик.
Пример:
{"customShell": ["command1", "command2", "command3"]}ВажноЭти команды выполняются с привилегиями пользователя, запускающего MySQL Shell, и следует использовать их с осторожностью.
© 2025 Oracle
Licensed under the GPLv2 License.