Spec-Zone.ru › MySQL 9.2

29.12.20.3 Таблицы сводных данных о заявлениях

Схема Performance Schema поддерживает таблицы для сбора текущих и недавних событий заявлений и агрегирует эту информацию в сводных таблицах. Раздел 29.12.6, «Таблицы событий заявлений Performance Schema» описывает события, на основе которых строятся сводные данные о заявлениях. См. это обсуждение для получения информации о содержимом событий заявлений, текущих и исторических таблицах событий заявлений и о том, как управлять сбором событий заявлений, который по умолчанию частично отключен.

Пример сводной информации о событиях заявлений:

mysql> SELECT *
       FROM performance_schema.events_statements_summary_global_by_event_name\G
*************************** 1. row ***************************
                 EVENT_NAME: statement/sql/select
                 COUNT_STAR: 54
             SUM_TIMER_WAIT: 38860400000
             MIN_TIMER_WAIT: 52400000
             AVG_TIMER_WAIT: 719600000
             MAX_TIMER_WAIT: 12631800000
              SUM_LOCK_TIME: 88000000
                 SUM_ERRORS: 0
               SUM_WARNINGS: 0
          SUM_ROWS_AFFECTED: 0
              SUM_ROWS_SENT: 60
          SUM_ROWS_EXAMINED: 120
SUM_CREATED_TMP_DISK_TABLES: 0
     SUM_CREATED_TMP_TABLES: 21
       SUM_SELECT_FULL_JOIN: 16
 SUM_SELECT_FULL_RANGE_JOIN: 0
           SUM_SELECT_RANGE: 0
     SUM_SELECT_RANGE_CHECK: 0
            SUM_SELECT_SCAN: 41
      SUM_SORT_MERGE_PASSES: 0
             SUM_SORT_RANGE: 0
              SUM_SORT_ROWS: 0
              SUM_SORT_SCAN: 0
          SUM_NO_INDEX_USED: 22
     SUM_NO_GOOD_INDEX_USED: 0
               SUM_CPU_TIME: 0
      MAX_CONTROLLED_MEMORY: 2028360
           MAX_TOTAL_MEMORY: 2853429
            COUNT_SECONDARY: 0
...

Каждая таблица сводных данных о заявлениях имеет один или несколько группирующих столбцов, чтобы указать, как таблица агрегирует события. Имена событий относятся к именам инструментов событий в таблице setup_instruments:

  • Таблица events_statements_summary_by_account_by_event_name содержит столбцы EVENT_NAME, USER и HOST. Каждая строка обобщает события для заданного аккаунта (комбинации пользователя и хоста) и имени события.

  • Таблица events_statements_summary_by_digest содержит столбцы SCHEMA_NAME и DIGEST. Каждая строка обобщает события по схеме и значению дайджеста. (Столбец DIGEST_TEXT содержит соответствующий нормализованный текст дайджеста заявления, но не является ни группирующим, ни сводным столбцом. Столбцы QUERY_SAMPLE_TEXT, QUERY_SAMPLE_SEEN и QUERY_SAMPLE_TIMER_WAIT также не являются группирующими или сводными столбцами; они поддерживают выборку заявлений.)

    Максимальное количество строк в таблице автоматически настраивается при запуске сервера. Чтобы явно установить это максимальное значение, установите системную переменную performance_schema_digests_size при запуске сервера.

  • Таблица events_statements_summary_by_host_by_event_name содержит столбцы EVENT_NAME и HOST. Каждая строка обобщает события для данного хоста и имени события.

  • Таблица events_statements_summary_by_program содержит столбцы OBJECT_TYPE, OBJECT_SCHEMA и OBJECT_NAME. Каждая строка обобщает события для данного хранимого программного объекта (хранимой процедуры или функции, триггера или события).

  • Таблица events_statements_summary_by_thread_by_event_name содержит столбцы THREAD_ID и EVENT_NAME. Каждая строка обобщает события для данного потока и имени события.

  • Таблица events_statements_summary_by_user_by_event_name содержит столбцы EVENT_NAME и USER. Каждая строка обобщает события для данного пользователя и имени события.

  • Таблица events_statements_summary_global_by_event_name содержит столбец EVENT_NAME. Каждая строка обобщает события для данного имени события.

  • Таблица prepared_statements_instances содержит столбец OBJECT_INSTANCE_BEGIN. Каждая строка обобщает события для данного подготовленного заявления.

Каждая таблица сводных данных о заявлениях имеет следующие сводные столбцы, содержащие агрегированные значения (с исключениями, как указано):

  • COUNT_STAR, SUM_TIMER_WAIT, MIN_TIMER_WAIT, AVG_TIMER_WAIT, MAX_TIMER_WAIT

    Эти столбцы аналогичны столбцам с такими же именами в таблицах сводных данных по событиям ожидания (см. Раздел 29.12.20.1, «Таблицы сводных данных по событиям ожидания»), за исключением того, что таблицы сводных данных о заявлениях агрегируют события из таблицы events_statements_current, а не из таблицы events_waits_current.

    В таблице prepared_statements_instances эти столбцы отсутствуют.

  • SUM_xxx

    Агрегированное значение соответствующего столбца xxx в таблице events_statements_current. Например, столбцы SUM_LOCK_TIME и SUM_ERRORS в таблицах сводных данных о заявлениях являются агрегатами столбцов LOCK_TIME и ERRORS в таблице events_statements_current.

  • MAX_CONTROLLED_MEMORY

    Сообщает максимальный объем используемой памяти, управляемой заявлением во время выполнения.

  • MAX_TOTAL_MEMORY

    Сообщает максимальный объем памяти, используемой заявлением во время выполнения.

  • COUNT_SECONDARY

    Количество раз, когда запрос обрабатывался на движке SECONDARY. Используется с HeatWave Service и HeatWave, где движок PRIMARY является InnoDB, а движок SECONDARY — HeatWave (RAPID). Для MySQL Community Edition Server, MySQL Enterprise Edition Server (on-premise) и HeatWave Service без HeatWave запросы всегда обрабатываются на движке PRIMARY, что означает, что значение всегда равно 0 на этих серверах MySQL.

Таблица events_statements_summary_by_digest содержит следующие дополнительные сводные столбцы:

  • FIRST_SEEN, LAST_SEEN

    Отметки времени, показывающие, когда заявления с заданным значением дайджеста были впервые обнаружены и в последний раз.

  • QUANTILE_95: 95-й процентиль задержки заявления в пикосекундах. Этот процентиль является высокой оценкой, вычисленной из данных гистограммы, собранных. Другими словами, для данного дайджеста 95% измеренных заявлений имеют задержку меньше, чем QUANTILE_95.

    Для доступа к данным гистограммы используйте таблицы, описанные в Раздел 29.12.20.4, «Таблицы сводных данных гистограмм заявлений».

  • QUANTILE_99: Аналогично QUANTILE_95, но для 99-го процентиля.

  • QUANTILE_999: Аналогично QUANTILE_95, но для 99,9-го процентиля.

Таблица events_statements_summary_by_digest содержит следующие столбцы. Они не являются группирующими или сводными столбцами; они поддерживают выборку заявлений:

  • QUERY_SAMPLE_TEXT

    Образец SQL-заявления, которое создаёт значение дайджеста в строке. Этот столбец позволяет приложениям получить доступ к фактическому заявлению, увиденному сервером, которое создаёт данный дайджест. Одно из применений — запуск EXPLAIN для заявления, чтобы изучить план выполнения для представительного заявления, связанного с часто встречающимся дайджестом.

    Когда столбцу QUERY_SAMPLE_TEXT присваивается значение, столбцам QUERY_SAMPLE_SEEN и QUERY_SAMPLE_TIMER_WAIT также присваиваются значения.

    Максимальное пространство, доступное для отображения заявления, по умолчанию составляет 1024 байта. Чтобы изменить это значение, установите системную переменную performance_schema_max_sql_text_length при запуске сервера. (Изменение этого значения также влияет на столбцы в других таблицах Performance Schema. См. Раздел 29.10, «Дайджесты и выборка заявлений Performance Schema».)

    Сведения о выборке заявлений см. в Разделе 29.10, «Дайджесты и выборка заявлений Performance Schema».

  • QUERY_SAMPLE_SEEN

    Отметка времени, показывающая, когда было видно заявление в столбце QUERY_SAMPLE_TEXT.

  • QUERY_SAMPLE_TIMER_WAIT

    Время ожидания для образца заявления в столбце QUERY_SAMPLE_TEXT.

Таблица events_statements_summary_by_program содержит эти дополнительные сводные столбцы:

  • COUNT_STATEMENTS, SUM_STATEMENTS_WAIT, MIN_STATEMENTS_WAIT, AVG_STATEMENTS_WAIT, MAX_STATEMENTS_WAIT

    Статистические данные о вложенных заявлениях, вызванных во время выполнения хранимой программы.

Таблица prepared_statements_instances содержит следующие дополнительные сводные столбцы:

  • COUNT_EXECUTE, SUM_TIMER_EXECUTE, MIN_TIMER_EXECUTE, AVG_TIMER_EXECUTE, MAX_TIMER_EXECUTE

    Агрегированная статистика для выполнений подготовленного заявления.

Таблицы сводных данных о заявлениях имеют следующие индексы:

  • events_transactions_summary_by_account_by_event_name:

    • Основной ключ по (USER, HOST, EVENT_NAME)

  • events_statements_summary_by_digest:

    • Основной ключ по (SCHEMA_NAME, DIGEST)

  • events_transactions_summary_by_host_by_event_name:

    • Основной ключ по (HOST, EVENT_NAME)

  • events_statements_summary_by_program:

    • Основной ключ по (OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME)

  • events_statements_summary_by_thread_by_event_name:

    • Основной ключ по (THREAD_ID, EVENT_NAME)

  • events_transactions_summary_by_user_by_event_name:

    • Основной ключ по (USER, EVENT_NAME)

  • events_statements_summary_global_by_event_name:

    • Основной ключ по (EVENT_NAME)

TRUNCATE TABLE разрешен для сводных таблиц инструкций. Он имеет такие последствия:

  • Для events_statements_summary_by_digest он удаляет строки.

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

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

Кроме того, каждая сводная таблица инструкций, которая агрегируется по учетной записи, хосту, пользователю или потоку, неявно усекается усечением таблицы подключений, от которой она зависит, или усечением events_statements_summary_global_by_event_name. Подробности см. в Разделе 29.12.8, «Таблицы подключений Performance Schema».

Кроме того, усечение events_statements_summary_by_digest неявно усекает events_statements_histogram_by_digest, а усечение events_statements_summary_global_by_event_name неявно усекает events_statements_histogram_global.

Правила агрегации сводных данных инструкций

Если потребитель statements_digest включен, агрегация в events_statements_summary_by_digest происходит следующим образом, когда инструкция завершается. Агрегация основана на значении DIGEST, вычисленном для инструкции.

  • Если строка events_statements_summary_by_digest уже существует со значением дайджеста для только что завершенной инструкции, статистика для инструкции агрегируется в эту строку. Столбец LAST_SEEN обновляется до текущего времени.

  • Если ни одна строка не содержит значение дайджеста для только что завершенной инструкции, и таблица не заполнена, для инструкции создается новая строка. Столбцы FIRST_SEEN и LAST_SEEN инициализируются текущим временем.

  • Если ни одна строка не содержит значение дайджеста инструкции для только что завершенной инструкции, и таблица заполнена, статистика для только что завершенной инструкции добавляется в специальную строку “корзина по умолчанию” с DIGEST = NULL, которая создается при необходимости. Если строка создана, столбцы FIRST_SEEN и LAST_SEEN инициализируются текущим временем. В противном случае столбец LAST_SEEN обновляется текущим временем.

Строка с DIGEST = NULL поддерживается, потому что таблицы Performance Schema имеют максимальный размер из-за ограничений памяти. Строка DIGEST = NULL позволяет подсчитывать дайджесты, которые не соответствуют другим строкам, даже если сводная таблица заполнена, используя общую корзину “другие”. Эта строка помогает оценить, насколько представительна сводка дайджестов:

  • Строка DIGEST = NULL, у которой значение COUNT_STAR составляет 5% от всех дайджестов, показывает, что сводная таблица дайджестов очень представительна; остальные строки охватывают 95% наблюдаемых инструкций.

  • Строка DIGEST = NULL, у которой значение COUNT_STAR составляет 50% от всех дайджестов, показывает, что сводная таблица дайджестов не очень представительна; остальные строки охватывают только половину наблюдаемых инструкций. Вероятно, администратору базы данных следует увеличить максимальный размер таблицы, чтобы больше строк, подсчитанных в строке DIGEST = NULL, было подсчитано с использованием более специфичных строк вместо этого. По умолчанию таблица имеет автоматический размер, но если этот размер слишком мал, установите системную переменную performance_schema_digests_size на большее значение во время запуска сервера.

Поведение инструментирования хранимых программ

Для типов хранимых программ, для которых включено инструментирование в таблице setup_objects, events_statements_summary_by_program сохраняет статистику для хранимых программ следующим образом:

  • Строка добавляется для объекта, когда он впервые используется на сервере.

  • Строка для объекта удаляется, когда объект удаляется.

  • Статистика агрегируется в строке для объекта по мере его выполнения.

См. также Раздел 29.4.3, «Предварительная фильтрация событий».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/performance-schema-statement-summary-tables.html

Spec-Zone.ru

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