25.4.5 Предварительный фильтр по объекту
Таблица setup_objects управляет тем, отслеживают ли мониторы Performance Schema определённые табличные и хранимые программные объекты. Исходное содержимое setup_objects выглядит так:
mysql> SELECT * FROM performance_schema.setup_objects;
+-------------+--------------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+-------------+--------------------+-------------+---------+-------+
| EVENT | mysql | % | NO | NO |
| EVENT | performance_schema | % | NO | NO |
| EVENT | information_schema | % | NO | NO |
| EVENT | % | % | YES | YES |
| FUNCTION | mysql | % | NO | NO |
| FUNCTION | performance_schema | % | NO | NO |
| FUNCTION | information_schema | % | NO | NO |
| FUNCTION | % | % | YES | YES |
| PROCEDURE | mysql | % | NO | NO |
| PROCEDURE | performance_schema | % | NO | NO |
| PROCEDURE | information_schema | % | NO | NO |
| PROCEDURE | % | % | YES | YES |
| TABLE | mysql | % | NO | NO |
| TABLE | performance_schema | % | NO | NO |
| TABLE | information_schema | % | NO | NO |
| TABLE | % | % | YES | YES |
| TRIGGER | mysql | % | NO | NO |
| TRIGGER | performance_schema | % | NO | NO |
| TRIGGER | information_schema | % | NO | NO |
| TRIGGER | % | % | YES | YES |
+-------------+--------------------+-------------+---------+-------+
Изменения в таблице setup_objects влияют на мониторинг объектов немедленно.
Столбец OBJECT_TYPE указывает тип объекта, к которому относится строка. TABLE фильтрация влияет на события ввода-вывода таблиц (инструмент wait/io/table/sql/handler) и события блокировок таблиц (инструмент wait/lock/table/sql/handler).
Столбцы OBJECT_SCHEMA и OBJECT_NAME должны содержать литеральное имя схемы или объекта, или '%' для соответствия любому имени.
Столбец ENABLED указывает, отслеживаются ли соответствующие объекты, а TIMED указывает, следует ли собирать временные данные. Установка столбца TIMED влияет на содержимое таблицы Performance Schema, как описано в разделе 25.4.1 «Временные метки событий Performance Schema».
Эффект стандартной конфигурации объектов состоит в инструментировании всех объектов, за исключением объектов в базах данных mysql, INFORMATION_SCHEMA и performance_schema. (Таблицы в базе данных INFORMATION_SCHEMA не инструментируются независимо от содержимого setup_objects; строка для information_schema.% просто делает этот стандарт явным.)
При проверке соответствия в setup_objects Performance Schema сначала пытается найти более точные совпадения. Для строк, которые соответствуют данному OBJECT_TYPE, Performance Schema проверяет строки в этом порядке:
Строки с
OBJECT_SCHEMA='иliteral'OBJECT_NAME='.literal'Строки с
OBJECT_SCHEMA='иliteral'OBJECT_NAME='%'.Строки с
OBJECT_SCHEMA='%'иOBJECT_NAME='%'.
Например, с таблицей db1.t1, Performance Schema ищет совпадения в строках TABLE для 'db1' и 't1', затем для 'db1' и '%', затем для '%' и '%'. Порядок, в котором происходит сопоставление, важен, потому что различные строки сопоставления setup_objects могут иметь разные значения ENABLED и TIMED.
Для событий, связанных с таблицами, Performance Schema объединяет содержимое setup_objects с setup_instruments для определения того, следует ли включать инструменты и следует ли измерять время работы включенных инструментов:
Для таблиц, которые соответствуют строке в
setup_objects, табличные инструменты генерируют события только еслиENABLEDравноYESкак вsetup_instruments, так и вsetup_objects.Значения
TIMEDв двух таблицах объединяются, так что временные данные собираются только когда оба значения равныYES.
Для хранимых программных объектов Performance Schema берёт столбцы ENABLED и TIMED непосредственно из строки setup_objects. Нет объединения значений с setup_instruments.
Предположим, что setup_objects содержит следующие строки TABLE, которые применяются к db1, db2 и db3:
+-------------+---------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+-------------+---------------+-------------+---------+-------+
| TABLE | db1 | t1 | YES | YES |
| TABLE | db1 | t2 | NO | NO |
| TABLE | db2 | % | YES | YES |
| TABLE | db3 | % | NO | NO |
| TABLE | % | % | YES | YES |
+-------------+---------------+-------------+---------+-------+
Если у инструмента, связанного с объектом, в setup_instruments значение ENABLED равно NO, события для объекта не отслеживаются. Если значение ENABLED равно YES, отслеживание событий происходит в соответствии со значением ENABLED в соответствующей строке setup_objects:
Отслеживаются события
db1.t1События
db1.t2не отслеживаютсяОтслеживаются события
db2.t3События
db3.t4не отслеживаютсяОтслеживаются события
db4.t5
Аналогичная логика применяется для объединения столбцов TIMED из таблиц setup_instruments и setup_objects для определения того, следует ли собирать временные данные событий.
Если у постоянной таблицы и временной таблицы одинаковое имя, соответствие строкам setup_objects происходит одинаково для обеих. Невозможно включить мониторинг для одной таблицы, но не для другой. Однако каждая таблица инструментируется отдельно.
© 2025 Oracle
Licensed under the GPLv2 License.