MySQL 9.0 版本資訊
setup_instruments
表格列出可用的工具
mysql> SELECT NAME, ENABLED, TIMED
FROM 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
欄會影響效能架構表格內容,如第 29.4.1 節 「效能架構事件計時」所述。
對大多數setup_instruments
列的修改會立即影響監控。對於某些工具,修改僅在伺服器啟動時有效;在執行階段變更它們沒有任何作用。這主要影響伺服器中的互斥鎖、條件和讀寫鎖,儘管可能還有其他工具也適用此情況。
setup_instruments
表格提供對事件產生最基本的控制形式。若要根據所監控物件或執行緒的類型進一步精煉事件產生,可以使用其他表格,如第 29.4.3 節 「事件預先篩選」所述。
以下範例演示了對 setup_instruments
表格可能進行的操作。這些變更,如同其他預先篩選操作,會影響所有使用者。其中一些查詢使用了 LIKE
運算子和模式比對工具名稱。關於指定模式以選取工具的更多資訊,請參閱第 29.4.9 節,「命名工具或消費者以進行篩選操作」。
停用所有工具
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO';
現在不會收集任何事件。
停用所有檔案工具,將它們加入到目前停用的工具集合中
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME LIKE 'wait/io/file/%';
僅停用檔案工具,啟用所有其他工具
UPDATE performance_schema.setup_instruments SET ENABLED = IF(NAME LIKE 'wait/io/file/%', 'NO', 'YES');
啟用除了
mysys
函式庫中的工具以外的所有工具UPDATE performance_schema.setup_instruments SET ENABLED = CASE WHEN NAME LIKE '%/mysys/%' THEN 'YES' ELSE 'NO' END;
停用特定的工具
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
要切換工具的狀態,請「翻轉」其
ENABLED
值UPDATE performance_schema.setup_instruments SET ENABLED = IF(ENABLED = 'YES', 'NO', 'YES') WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
停用所有事件的計時
UPDATE performance_schema.setup_instruments SET TIMED = 'NO';