29.12.4 Таблицы событий ожидания Performance Schema
Модуль Performance Schema отслеживает ожидания, которые представляют собой события, занимающие время. В иерархии событий события ожидания вложены в события стадии, которые вложены в события операторов, которые вложены в события транзакций.
Эти таблицы хранят события ожидания:
events_waits_current: Текущее событие ожидания для каждого потока.events_waits_history: Последние завершенные события ожидания на поток.events_waits_history_long: Последние завершенные события ожидания глобально (по всем потокам).
В следующих разделах описываются таблицы событий ожидания. Также существуют сводные таблицы, агрегирующие информацию о событиях ожидания; см. Раздел 29.12.20.1, «Сводные таблицы событий ожидания».
Дополнительную информацию об отношениях между тремя таблицами событий ожидания см. в Разделе 29.9, «Таблицы Performance Schema для текущих и исторических событий».
Настройка сбора событий ожидания
Для управления сбором событий ожидания установите состояние соответствующих инструментов и потребителей:
Таблица
setup_instrumentsсодержит инструменты с именами, начинающимися сwait. Используйте эти инструменты для включения или отключения сбора отдельных классов событий ожидания.Таблица
setup_consumersсодержит значения потребителей с именами, соответствующими именам текущих и исторических таблиц событий ожидания. Используйте этих потребителей для фильтрации сбора событий ожидания.
Некоторые инструменты событий ожидания включены по умолчанию, другие отключены. Например:
mysql> SELECT NAME, ENABLED, TIMED
FROM performance_schema.setup_instruments
WHERE NAME LIKE 'wait/io/file/innodb%';
+-------------------------------------------------+---------+-------+
| NAME | ENABLED | TIMED |
+-------------------------------------------------+---------+-------+
| wait/io/file/innodb/innodb_tablespace_open_file | YES | YES |
| wait/io/file/innodb/innodb_data_file | YES | YES |
| wait/io/file/innodb/innodb_log_file | YES | YES |
| wait/io/file/innodb/innodb_temp_file | YES | YES |
| wait/io/file/innodb/innodb_arch_file | YES | YES |
| wait/io/file/innodb/innodb_clone_file | YES | YES |
+-------------------------------------------------+---------+-------+
mysql> SELECT NAME, ENABLED, TIMED
FROM performance_schema.setup_instruments
WHERE NAME LIKE 'wait/io/socket/%';
+----------------------------------------+---------+-------+
| NAME | ENABLED | TIMED |
+----------------------------------------+---------+-------+
| wait/io/socket/sql/server_tcpip_socket | NO | NO |
| wait/io/socket/sql/server_unix_socket | NO | NO |
| wait/io/socket/sql/client_connection | NO | NO |
+----------------------------------------+---------+-------+
Потребители событий ожидания отключены по умолчанию:
mysql> SELECT *
FROM performance_schema.setup_consumers
WHERE NAME LIKE 'events_waits%';
+---------------------------+---------+
| NAME | ENABLED |
+---------------------------+---------+
| events_waits_current | NO |
| events_waits_history | NO |
| events_waits_history_long | NO |
+---------------------------+---------+
Для управления сбором событий ожидания при запуске сервера используйте такие строки в файле my.cnf:
-
Включение:
[mysqld] performance-schema-instrument='wait/%=ON' performance-schema-consumer-events-waits-current=ON performance-schema-consumer-events-waits-history=ON performance-schema-consumer-events-waits-history-long=ON
-
Отключение:
[mysqld] performance-schema-instrument='wait/%=OFF' performance-schema-consumer-events-waits-current=OFF performance-schema-consumer-events-waits-history=OFF performance-schema-consumer-events-waits-history-long=OFF
Для управления сбором событий ожидания во время выполнения обновите таблицы setup_instruments и setup_consumers:
-
Включение:
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME LIKE 'wait/%'; UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE 'events_waits%';
-
Отключение:
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO', TIMED = 'NO' WHERE NAME LIKE 'wait/%'; UPDATE performance_schema.setup_consumers SET ENABLED = 'NO' WHERE NAME LIKE 'events_waits%';
Чтобы собрать только определённые события ожидания, включите только соответствующие инструменты событий ожидания. Чтобы собрать события ожидания только для определённых таблиц событий ожидания, включите инструменты событий ожидания, но только потребителей событий ожидания, соответствующих требуемым таблицам.
Дополнительную информацию о настройке сбора событий см. в Разделе 29.3, «Настройка Performance Schema при запуске» и Разделе 29.4, «Настройка Performance Schema во время выполнения».
© 2025 Oracle
Licensed under the GPLv2 License.