Spec-Zone.ru › MySQL 5.7

25.12.15.3 Таблицы сводных данных о заявках

Модуль Performance Schema поддерживает таблицы для сбора текущих и недавних событий заявок и агрегирует эту информацию в сводных таблицах. Раздел 25.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: 25
             SUM_TIMER_WAIT: 1535983999000
             MIN_TIMER_WAIT: 209823000
             AVG_TIMER_WAIT: 61439359000
             MAX_TIMER_WAIT: 1363397650000
              SUM_LOCK_TIME: 20186000000
                 SUM_ERRORS: 0
               SUM_WARNINGS: 0
          SUM_ROWS_AFFECTED: 0
              SUM_ROWS_SENT: 388
          SUM_ROWS_EXAMINED: 370
SUM_CREATED_TMP_DISK_TABLES: 0
     SUM_CREATED_TMP_TABLES: 0
       SUM_SELECT_FULL_JOIN: 0
 SUM_SELECT_FULL_RANGE_JOIN: 0
           SUM_SELECT_RANGE: 0
     SUM_SELECT_RANGE_CHECK: 0
            SUM_SELECT_SCAN: 6
      SUM_SORT_MERGE_PASSES: 0
             SUM_SORT_RANGE: 0
              SUM_SORT_ROWS: 0
              SUM_SORT_SCAN: 0
          SUM_NO_INDEX_USED: 6
     SUM_NO_GOOD_INDEX_USED: 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 содержит соответствующий нормализованный текст дайджеста запроса, но не является ни группирующим, ни сводным столбцом.)

    Максимальное количество строк в таблице автоматически задаётся при запуске сервера. Чтобы явно установить это максимальное значение, установите системную переменную 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

    Эти столбцы аналогичны столбцам с такими же именами в таблицах сводных данных событий ожидания (см. Раздел 25.12.15.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.

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

  • FIRST_SEEN, LAST_SEEN

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

Таблица 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

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

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

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

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

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

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

Правила агрегации отчётов о выполнении запросов

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

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

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

  • Если ни одна строка не содержит значение отчёта о выполнении запроса, который только что завершился, и таблица заполнена, статистика запроса, который только что завершился, добавляется в специальную строку “catch-all” со значением 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 поддерживает статистику для хранимых процедур следующим образом:

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

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

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

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

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

Spec-Zone.ru

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