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.