Spec-Zone.ru › MySQL 9.2

29.12.4 Таблицы событий ожидания Performance Schema

  • 29.12.4.1 Таблица events_waits_current
  • 29.12.4.2 Таблица events_waits_history
  • 29.12.4.3 Таблица events_waits_history_long

Модуль 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/performance-schema-wait-tables.html

Spec-Zone.ru

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