22.5.7 Мониторинг плагина X
Для общего мониторинга плагина X используйте переменные состояния, которые он предоставляет. См. Раздел 22.5.6.3, «Переменные состояния плагина X». Для получения информации о мониторинге влияния сжатия сообщений см. Мониторинг сжатия подключений для плагина X.
Мониторинг SQL-запросов, сгенерированных плагином X
В этом разделе описывается, как отслеживать SQL-запросы, которые генерирует плагин X при выполнении операций X DevAPI. При выполнении оператора CRUD он преобразуется в SQL-запрос и выполняется на сервере. Для мониторинга сгенерированного SQL необходимо включить таблицы Performance Schema. SQL регистрируется в таблицах performance_schema.events_statements_current, performance_schema.events_statements_history и performance_schema.events_statements_history_long. В следующем примере используется схема world_x, импортированная в рамках учебных пособий по быстрому запуску в этом разделе. Мы используем MySQL Shell в режиме Python и команду \sql, которая позволяет вам выполнять SQL-запросы, не переходя в режим SQL. Это важно, потому что если вы попробуете переключиться в режим SQL, процедура покажет результат этой операции, а не операции X DevAPI. Команда \sql используется аналогичным образом, если вы используете MySQL Shell в режиме JavaScript.
-
Проверьте, включен ли потребитель
events_statements_history. Выполните команду:mysql-py>
\sql SELECT enabled FROM performance_schema.setup_consumers WHERE NAME = 'events_statements_history'+---------+ | enabled | +---------+ | YES | +---------+ -
Проверьте, сообщают ли все инструменты данные потребителю. Выполните команду:
mysql-py>
\sql SELECT NAME, ENABLED, TIMED FROM performance_schema.setup_instruments WHERE NAME LIKE 'statement/%' AND NOT (ENABLED and TIMED)Если этот запрос возвращает хотя бы одну строку, вам необходимо включить инструменты. См. Раздел 29.4, «Конфигурация Performance Schema во время выполнения».
-
Получите идентификатор потока текущего подключения. Выполните команду:
mysql-py>
\sql SELECT thread_id INTO @id FROM performance_schema.threads WHERE processlist_id=connection_id() -
Выполните операцию X DevAPI CRUD, для которой вы хотите увидеть сгенерированный SQL. Например, выполните команду:
mysql-py>
db.CountryInfo.find("Name = :country").bind("country", "Italy")Не выполняйте никаких дополнительных операций, чтобы следующий шаг показал правильный результат.
-
Отобразите последний SQL-запрос, сделанный этим идентификатором потока. Выполните команду:
mysql-py>
\sql SELECT THREAD_ID, MYSQL_ERRNO,SQL_TEXT FROM performance_schema.events_statements_history WHERE THREAD_ID=@id ORDER BY TIMER_START DESC LIMIT 1;+-----------+-------------+--------------------------------------------------------------------------------------+ | THREAD_ID | MYSQL_ERRNO | SQL_TEXT | +-----------+-------------+--------------------------------------------------------------------------------------+ | 29 | 0 | SELECT doc FROM `world_x`.`CountryInfo` WHERE (JSON_EXTRACT(doc,'$.Name') = 'Italy') | +-----------+-------------+--------------------------------------------------------------------------------------+Результат отобразит SQL-запрос, сгенерированный плагином X на основе последней операции, в данном случае операции X DevAPI CRUD из предыдущего шага.
© 2025 Oracle
Licensed under the GPLv2 License.