MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  インストゥルメントによる事前フィルタリング

27.4.4 インストゥルメントによる事前フィルタリング

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';

関連キーワード:  テーブル, パフォーマンス, スキーマ, インストゥルメント, NO, wait, instruments, events, replication, ENABLED