Spec-Zone.ru › MySQL 9.2

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.

  1. Проверьте, включен ли потребитель events_statements_history. Выполните команду:

    mysql-py> \sql SELECT enabled FROM performance_schema.setup_consumers WHERE NAME = 'events_statements_history'
    +---------+
    | enabled |
    +---------+
    | YES     |
    +---------+
    
  2. Проверьте, сообщают ли все инструменты данные потребителю. Выполните команду:

    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 во время выполнения».

  3. Получите идентификатор потока текущего подключения. Выполните команду:

    mysql-py> \sql SELECT thread_id INTO @id FROM performance_schema.threads WHERE processlist_id=connection_id()
  4. Выполните операцию X DevAPI CRUD, для которой вы хотите увидеть сгенерированный SQL. Например, выполните команду:

    mysql-py> db.CountryInfo.find("Name = :country").bind("country", "Italy")

    Не выполняйте никаких дополнительных операций, чтобы следующий шаг показал правильный результат.

  5. Отобразите последний 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/x-plugin-system-monitoring.html

Spec-Zone.ru

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