25.4.6 Предварительное фильтрация по потокам
Таблица threads содержит строку для каждого серверного потока. Каждая строка содержит информацию о потоке и указывает, включено ли для него отслеживание. Для того, чтобы Performance Schema отслеживал поток, должны выполняться следующие условия:
Потребитель
thread_instrumentationв таблицеsetup_consumersдолжен бытьYES.Столбец
threads.INSTRUMENTEDдолжен бытьYES.Отслеживание происходит только для событий потоков, созданных инструментами, которые включены в таблице
setup_instruments.
Таблица threads также указывает для каждого серверного потока, нужно ли выполнять протоколирование исторических событий. Это включает события ожидания, этапа, оператора и транзакции, и влияет на протоколирование в следующих таблицах:
events_waits_history
events_waits_history_long
events_stages_history
events_stages_history_long
events_statements_history
events_statements_history_long
events_transactions_history
events_transactions_history_long
Для того, чтобы происходило протоколирование исторических событий, должны выполняться следующие условия:
Соответствующие потребители, связанные с историей, в таблице
setup_consumersдолжны быть включены. Например, протоколирование событий ожидания в таблицахevents_waits_historyиevents_waits_history_longтребует включения соответствующих потребителейevents_waits_historyиevents_waits_history_long.Столбец
threads.HISTORYдолжен бытьYES.Протоколирование происходит только для событий потоков, созданных инструментами, которые включены в таблице
setup_instruments.
Для фоновых потоков (возникающих из подключений клиентов) начальные значения столбцов INSTRUMENTED и HISTORY в строках таблицы threads определяются соответствием учетной записи пользователя, связанной с потоком, любой строке в таблице setup_actors. Значения берутся из столбцов ENABLED и HISTORY соответствующей строки таблицы setup_actors.
Для фоновых потоков связанной учетной записи нет. INSTRUMENTED и HISTORY по умолчанию равны YES, и таблица setup_actors не используется.
Начальное содержимое таблицы setup_actors выглядит следующим образом:
mysql> SELECT * FROM performance_schema.setup_actors;
+------+------+------+---------+---------+
| HOST | USER | ROLE | ENABLED | HISTORY |
+------+------+------+---------+---------+
| % | % | % | YES | YES |
+------+------+------+---------+---------+
Столбцы HOST и USER должны содержать буквенное имя хоста или пользователя, или '%' для соответствия любому имени.
Столбцы ENABLED и HISTORY указывают, нужно ли включать инструментарий и протоколирование исторических событий для соответствующих потоков, с учетом других условий, описанных ранее.
При проверке соответствия для каждого нового фонового потока в setup_actors Performance Schema пытается найти более конкретные соответствия, используя столбцы USER и HOST (ROLE не используется):
Строки с
USER='иliteral'HOST='.literal'Строки с
USER='иliteral'HOST='%'.Строки с
USER='%'иHOST='.literal'Строки с
USER='%'иHOST='%'.
Порядок соответствия важен, потому что разные строки соответствия таблицы setup_actors могут иметь разные значения USER и HOST. Это позволяет выборочно применять инструментарий и протоколирование исторических событий для хоста, пользователя или учетной записи (сочетание пользователя и хоста) на основе значений столбцов ENABLED и HISTORY:
При наилучшем соответствии с строкой, содержащей
ENABLED=YES, значениеINSTRUMENTEDдля потока становитсяYES. При наилучшем соответствии с строкой, содержащейHISTORY=YES, значениеHISTORYдля потока становитсяYES.При наилучшем соответствии с строкой, содержащей
ENABLED=NO, значениеINSTRUMENTEDдля потока становитсяNO. При наилучшем соответствии с строкой, содержащейHISTORY=NO, значениеHISTORYдля потока становитсяNO.При отсутствии соответствия значения
INSTRUMENTEDиHISTORYдля потока становятсяNO.
Столбцы ENABLED и HISTORY в строках таблицы setup_actors могут быть установлены в YES или NO независимо друг от друга. Это означает, что вы можете включить инструментарий отдельно от протоколирования исторических событий.
По умолчанию отслеживание и протоколирование исторических событий включены для всех новых фоновых потоков, потому что таблица setup_actors изначально содержит строку со значением '%' для обоих столбцов HOST и USER. Для выполнения более ограниченного соответствия, например, для включения отслеживания только для некоторых фоновых потоков, необходимо изменить эту строку, поскольку она соответствует любому подключению, и добавить строки для более конкретных комбинаций HOST/USER.
Предположим, что вы изменяете таблицу setup_actors следующим образом:
UPDATE performance_schema.setup_actors
SET ENABLED = 'NO', HISTORY = 'NO'
WHERE HOST = '%' AND USER = '%';
INSERT INTO performance_schema.setup_actors
(HOST,USER,ROLE,ENABLED,HISTORY)
VALUES('localhost','joe','%','YES','YES');
INSERT INTO performance_schema.setup_actors
(HOST,USER,ROLE,ENABLED,HISTORY)
VALUES('hosta.example.com','joe','%','YES','NO');
INSERT INTO performance_schema.setup_actors
(HOST,USER,ROLE,ENABLED,HISTORY)
VALUES('%','sam','%','NO','YES');
Оператор UPDATE изменяет значение по умолчанию на отключение инструментария и протоколирования исторических событий. Операторы INSERT добавляют строки для более конкретных соответствий.
Теперь Performance Schema определяет, как установить значения INSTRUMENTED и HISTORY для новых потоков подключений следующим образом:
Если
joeподключается с локального хоста, подключение соответствует первой вставленной строке. ЗначенияINSTRUMENTEDиHISTORYдля потока становятсяYES.Если
joeподключается с хостаhosta.example.com, подключение соответствует второй вставленной строке. ЗначениеINSTRUMENTEDдля потока становитсяYES, аHISTORY—NO.Если
joeподключается с любого другого хоста, соответствия нет. ЗначенияINSTRUMENTEDиHISTORYдля потока становятсяNO.Если
samподключается с любого хоста, подключение соответствует третьей вставленной строке. ЗначениеINSTRUMENTEDдля потока становитсяNO, аHISTORY—YES.Для любого другого подключения соответствует строка, где
HOSTиUSERустановлены в'%'. Эта строка теперь имеетENABLEDиHISTORY, установленные вNO, поэтому значенияINSTRUMENTEDиHISTORYдля потока становятсяNO.
Изменения в таблице setup_actors влияют только на фоновые потоки, созданные после внесения изменений, а не на существующие потоки. Чтобы повлиять на существующие потоки, измените столбцы INSTRUMENTED и HISTORY в строках таблицы threads.
© 2025 Oracle
Licensed under the GPLv2 License.