25.4.7 Предварительное фильтрование по потребителю
Таблица setup_consumers содержит список доступных типов потребителей и их включение:
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| events_stages_current | NO |
| events_stages_history | NO |
| events_stages_history_long | NO |
| events_statements_current | YES |
| events_statements_history | YES |
| events_statements_history_long | NO |
| events_transactions_current | NO |
| events_transactions_history | NO |
| events_transactions_history_long | NO |
| events_waits_current | NO |
| events_waits_history | NO |
| events_waits_history_long | NO |
| global_instrumentation | YES |
| thread_instrumentation | YES |
| statements_digest | YES |
+----------------------------------+---------+
Измените таблицу setup_consumers, чтобы повлиять на предварительное фильтрование на стадии потребителя и определить пункты назначения, в которые отправляются события. Для включения или отключения потребителя установите его значение ENABLED в YES или NO.
Изменения в таблице setup_consumers влияют на мониторинг немедленно.
Если вы отключите потребителя, сервер не тратит время на поддержание пунктов назначения для этого потребителя. Например, если вы не заинтересованы в исторической информации о событиях, отключите потребителей истории:
UPDATE performance_schema.setup_consumers
SET ENABLED = 'NO'
WHERE NAME LIKE '%history%';
Параметры потребителя в таблице setup_consumers образуют иерархию от верхних уровней к нижним. Применяются следующие принципы:
Пункты назначения, связанные с потребителем, не получают событий, если Performance Schema не проверяет потребителя и потребитель не включен.
Потребитель проверяется только в том случае, если все зависящие от него потребители (если таковые имеются) включены.
Если потребитель не проверяется или проверяется, но отключен, другие потребители, зависящие от него, не проверяются.
Зависимые потребители могут иметь свои собственные зависимые потребители.
Если событие не будет отправлено ни в один пункт назначения, Performance Schema его не генерирует.
В следующих списках описаны доступные значения потребителей. Для обсуждения нескольких типичных конфигураций потребителей и их влияния на инструментирование см. Раздел 25.4.8, «Примеры конфигураций потребителей».
Глобальные и потоковые потребители
global_instrumentationявляется потребителем наивысшего уровня. Еслиglobal_instrumentationимеет значениеNO, это отключает глобальную инструментировку. Все остальные настройки находятся на более низком уровне и не проверяются; неважно, что они установлено. Не сохраняется информация о глобальных и потоковых состояниях, и не собираются отдельные события в таблицах current-events и event-history. Еслиglobal_instrumentationимеет значениеYES, Performance Schema сохраняет информацию о глобальных состояниях и также проверяет потребителяthread_instrumentation.thread_instrumentationпроверяется только в том случае, еслиglobal_instrumentationимеет значениеYES. В противном случае, еслиthread_instrumentationимеет значениеNO, это отключает потокоспецифическую инструментировку, и все настройки нижнего уровня игнорируются. Не сохраняется информация о каждом потоке, и не собираются отдельные события в таблицах current-events и event-history. Еслиthread_instrumentationимеет значениеYES, Performance Schema сохраняет потокоспецифическую информацию и также проверяет потребителейevents_.xxx_current
Потребители событий ожидания
Для этих потребителей необходимо, чтобы как global_instrumentation, так и thread_instrumentation имели значение YES, иначе они не проверяются. Если проверка проходит, они действуют следующим образом:
events_waits_current, еслиNO, отключает сбор отдельных событий ожидания в таблицеevents_waits_current. ЕслиYES, он включает сбор событий ожидания, и Performance Schema проверяет потребителейevents_waits_historyиevents_waits_history_long.events_waits_historyне проверяется, еслиevent_waits_currentимеет значениеNO. В противном случае, значениеevents_waits_historyравноеNOилиYESотключает или включает сбор событий ожидания в таблицеevents_waits_history.events_waits_history_longне проверяется, еслиevent_waits_currentимеет значениеNO. В противном случае, значениеevents_waits_history_longравноеNOилиYESотключает или включает сбор событий ожидания в таблицеevents_waits_history_long.
Потребители событий стадии
Для этих потребителей необходимо, чтобы как global_instrumentation, так и thread_instrumentation имели значение YES, иначе они не проверяются. Если проверка проходит, они действуют следующим образом:
events_stages_current, еслиNO, отключает сбор отдельных событий стадии в таблицеevents_stages_current. ЕслиYES, он включает сбор событий стадии, и Performance Schema проверяет потребителейevents_stages_historyиevents_stages_history_long.events_stages_historyне проверяется, еслиevent_stages_currentимеет значениеNO. В противном случае, значениеevents_stages_historyравноеNOилиYESотключает или включает сбор событий стадии в таблицеevents_stages_history.events_stages_history_longне проверяется, еслиevent_stages_currentимеет значениеNO. В противном случае, значениеevents_stages_history_longравноеNOилиYESотключает или включает сбор событий стадии в таблицеevents_stages_history_long.
Потребители событий операторов
Для этих потребителей необходимо, чтобы как global_instrumentation, так и thread_instrumentation имели значение YES, иначе они не проверяются. Если проверка проходит, они действуют следующим образом:
events_statements_current, еслиNO, отключает сбор отдельных событий операторов в таблицеevents_statements_current. ЕслиYES, он включает сбор событий операторов, и Performance Schema проверяет потребителейevents_statements_historyиevents_statements_history_long.events_statements_historyне проверяется, еслиevents_statements_currentимеет значениеNO. В противном случае, значениеevents_statements_historyравноеNOилиYESотключает или включает сбор событий операторов в таблицеevents_statements_history.events_statements_history_longне проверяется, еслиevents_statements_currentимеет значениеNO. В противном случае, значениеevents_statements_history_longравноеNOилиYESотключает или включает сбор событий операторов в таблицеevents_statements_history_long.
Потребители событий транзакций
Для этих потребителей необходимо, чтобы оба global_instrumentation и thread_instrumentation были YES, иначе они не проверяются. Если они проверены, они действуют следующим образом:
events_transactions_current, еслиNO, отключает сбор отдельных событий транзакций в таблицеevents_transactions_current. ЕслиYES, то это включает сбор событий транзакций, и Performance Schema проверяет потребителейevents_transactions_historyиevents_transactions_history_long.events_transactions_historyне проверяется, еслиevents_transactions_currentимеет значениеNO. В противном случае значениеevents_transactions_history, равноеNOилиYES, отключает или включает сбор событий транзакций в таблицеevents_transactions_history.events_transactions_history_longне проверяется, еслиevents_transactions_currentимеет значениеNO. В противном случае значениеevents_transactions_history_long, равноеNOилиYES, отключает или включает сбор событий транзакций в таблицеevents_transactions_history_long.
Потребитель дайджестов запросов
Потребитель statements_digest требует, чтобы global_instrumentation был YES, иначе он не проверяется. Нет зависимости от потребителей событий запросов, поэтому вы можете получить статистику по дайджестам, не собирая статистику в events_statements_current, что выгодно с точки зрения накладных расходов. И наоборот, вы можете получить подробные запросы в events_statements_current без дайджестов (столбцы DIGEST и DIGEST_TEXT являются NULL).
Дополнительную информацию о дайджестировании запросов см. в разделе 25.10, «Дайджесты запросов Performance Schema».
© 2025 Oracle
Licensed under the GPLv2 License.