29.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, как описано в разделе 29.4.1 «Временные характеристики событий Performance Schema».
Эффект от стандартной конфигурации объектов — отслеживание всех объектов, за исключением тех, которые находятся в базах данных mysql, INFORMATION_SCHEMA и performance_schema. (Таблицы в базе данных INFORMATION_SCHEMA не отслеживаются независимо от содержимого setup_objects; строка для information_schema.% просто делает этот параметр явным.)
При проверке механизмом Performance Schema на соответствие в setup_objects сначала ищутся более специфические соответствия. Для строк, которые соответствуют заданному 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.