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
カラムを設定すると、セクション27.4.1「パフォーマンススキーマイベントタイミング」に説明するように、パフォーマンススキーマテーブルの内容に影響します。
ほとんどの setup_instruments
行を変更すると、すぐに監視に影響します。 一部のインストゥルメントでは、変更はサーバーの起動時にのみ有効です。実行時に変更しても効果はありません。 これは主にサーバー内の mutex、条件、および rwlocks に影響しますが、これが当てはまるほかのインストゥルメントが存在する可能性があります。
setup_instruments
テーブルはイベント生成のもっとも基本的な制御の形式を提供します。 モニターされるオブジェクトやスレッドの種類に基づいて、イベント生成をさらに絞り込むには、セクション27.4.3「イベントの事前フィルタリング」に説明するように、ほかのテーブルを使用できます。
次の例に、setup_instruments
テーブルへの可能な操作を示します。 ほかの事前フィルタリング操作と同様に、これらの変更はすべてのユーザーに影響します。 これらの一部のクエリーでは、LIKE
演算子とパターンマッチインストゥルメント名を使用しています。 インストゥルメントを選択するためのパターンの指定に関する追加情報については、セクション27.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';