通过仪器进行预过滤
下setup_instruments
表列出了可用的工具:
mysql>SELECT NAME , ENABLED, TIMEDFROM performance_schema.setup_instruments; +--------------------------------------------------- +--------- +------- + | NAME | ENABLED | TIMED | +--------------------------------------------------- +--------- +------- + ... | stage/sql/end | NO | NO | | stage/sql/executing | NO | NO | | stage/sql/init | NO | NO | | stage/sql/insert | NO | NO | ... | statement/sql/load | YES | YES | | statement/sql/grant | YES | YES | | statement/sql/check | YES | YES | | statement/sql/flush | YES | YES | ... | wait/synch/mutex/sql/LOCK_global_read_lock | YES | YES | | wait/synch/mutex/sql/LOCK_global_system_variables | YES | YES | | wait/synch/mutex/sql/LOCK_lock_db | YES | YES | | wait/synch/mutex/sql/LOCK_manager | YES | YES | ... | wait/synch/rwlock/sql/LOCK_grant | YES | YES | | wait/synch/rwlock/sql/LOGGER::LOCK_logger | YES | YES | | wait/synch/rwlock/sql/LOCK_sys_init_connect | YES | YES | | wait/synch/rwlock/sql/LOCK_sys_init_slave | YES | YES | ... | wait/io/file/sql/binlog | YES | YES | | wait/io/file/sql/binlog_index | YES | YES | | wait/io/file/sql/casetest | YES | YES | | wait/io/file/sql/dbopt | YES | YES | ...
要控制是否启用了仪器,请将其ENABLED
列设置为YES
或NO
。要配置是否收集已启用仪器的计时信息,请将其TIMED
值设置为YES
或NO
。设置TIMED
列会影响性能模式表的内容,如“性能模式事件计时”中所述。
对大多数setup_instruments
行的修改会立即影响监视。对于某些仪器,修改仅在服务器启动时有效。在运行时更改它们无效。这可能主要影响服务器中的互斥锁,条件和rwlock,尽管可能存在其他适用于此的工具。
该setup_instruments
表提供了对事件产生的最基本控制形式。为了根据要监视的对象或线程的类型进一步细化事件产生,可以使用“事件预过滤”中所述的其他表。
以下示例说明了setup_instruments
表上可能的操作。这些更改与其他预过滤操作一样,会影响所有用户。其中一些查询使用LIKE
运算符和模式匹配工具名称。有关指定模式以选择工具的更多信息,请参见“为过滤操作命名工具或使用者”。
禁用所有仪器:
UPDATE performance_schema.setup_instrumentsSET ENABLED = 'NO';现在将不会收集任何事件。
禁用所有文件工具,将它们添加到当前禁用的工具集中:
UPDATE performance_schema.setup_instrumentsSET ENABLED = 'NO'WHERE NAME LIKE 'wait/io/file/%';仅禁用文件工具,启用所有其他工具:
UPDATE performance_schema.setup_instrumentsSET ENABLED = IF(NAME LIKE 'wait/io/file/%', 'NO', 'YES');启用
mysys
库中除那些工具外的所有工具:UPDATE performance_schema.setup_instrumentsSET ENABLED = CASEWHEN NAME LIKE '%/mysys/%'THEN 'YES'ELSE 'NO'END ;禁用特定的仪器:
UPDATE performance_schema.setup_instrumentsSET ENABLED = 'NO'WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';要切换工具的状态,请“翻转”其
ENABLED
值:UPDATE performance_schema.setup_instrumentsSET ENABLED = IF(ENABLED = 'YES', 'NO', 'YES')WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';禁用所有事件的计时:
UPDATE performance_schema.setup_instrumentsSET TIMED = 'NO';