Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  パフォーマンススキーマステージイベントテーブル

22.9.5 パフォーマンススキーマステージイベントテーブル

MySQL 5.6.3 現在、パフォーマンススキーマは、ステートメントの解析、テーブルのオープン、または filesort 操作の実行などのステートメント実行プロセス中のステップであるステージをインストゥルメントします。ステージは SHOW PROCESSLIST によって表示されるか、または INFORMATION_SCHEMA.PROCESSLIST テーブルに表示されるスレッドの状態に対応します。ステージは、状態値が変化したときに開始および終了します。

イベント階層内で、待機イベントはステージイベント内にネストし、ステージイベントはステートメントイベント内にネストします。

これらのテーブルはステージイベントを格納します。

  • events_stages_current: 現在のステージイベント

  • events_stages_history: 各スレッドの最新のステージイベント

  • events_stages_history_long: 全体の最新のステージイベント

次のセクションでそれらのテーブルについて説明します。ステージイベントに関する情報を集計するサマリーテーブルもあります。セクション22.9.9.2「ステージサマリーテーブル」を参照してください。

ステージイベント構成

ステージイベントの収集を有効にするには、関連インストゥルメントとコンシューマを有効にします。

setup_instruments テーブルには、stage で始まる名前を持つインストゥルメントが格納されます。これらのインストゥルメントはデフォルトで無効にされています。例:

mysql> SELECT * FROM setup_instruments WHERE NAME RLIKE 'stage/sql/[a-c]';
+----------------------------------------------------+---------+-------+
| NAME                                               | ENABLED | TIMED |
+----------------------------------------------------+---------+-------+
| stage/sql/After create                             | NO      | NO    |
| stage/sql/allocating local table                   | NO      | NO    |
| stage/sql/altering table                           | NO      | NO    |
| stage/sql/committing alter table to storage engine | NO      | NO    |
| stage/sql/Changing master                          | NO      | NO    |
| stage/sql/Checking master version                  | NO      | NO    |
| stage/sql/checking permissions                     | NO      | NO    |
| stage/sql/checking privileges on cached query      | NO      | NO    |
| stage/sql/checking query cache for query           | NO      | NO    |
| stage/sql/cleaning up                              | NO      | NO    |
| stage/sql/closing tables                           | NO      | NO    |
| stage/sql/Connecting to master                     | NO      | NO    |
| stage/sql/converting HEAP to MyISAM                | NO      | NO    |
| stage/sql/Copying to group table                   | NO      | NO    |
| stage/sql/Copying to tmp table                     | NO      | NO    |
| stage/sql/copy to tmp table                        | NO      | NO    |
| stage/sql/Creating delayed handler                 | NO      | NO    |
| stage/sql/Creating sort index                      | NO      | NO    |
| stage/sql/creating table                           | NO      | NO    |
| stage/sql/Creating tmp table                       | NO      | NO    |
+----------------------------------------------------+---------+-------+

ステージイベントの収集を変更するには、関連インストゥルメントの ENABLED および TIMING カラムを変更します。例:

mysql> UPDATE setup_instruments SET ENABLED = 'YES', TIMED = 'YES'
    -> WHERE NAME = 'stage/sql/altering table';

setup_consumers テーブルには現在および最近のステージイベントテーブル名に対応する名前を持つコンシューマ値が格納されます。これらのコンシューマはステージイベントのコレクションをフィルタ処理するために使用できます。ステージコンシューマはデフォルトで無効にされています。

mysql> SELECT * FROM setup_consumers WHERE NAME LIKE '%stages%';
+----------------------------+---------+
| NAME                       | ENABLED |
+----------------------------+---------+
| events_stages_current      | NO      |
| events_stages_history      | NO      |
| events_stages_history_long | NO      |
+----------------------------+---------+

すべてのステージコンシューマを有効にするには、次を実行します。

mysql> UPDATE setup_consumers SET ENABLED = 'YES'
    -> WHERE NAME LIKE '%stages%';

setup_timers テーブルには、ステージイベントのタイミングの単位を示す stageNAME 値のある行が格納されます。デフォルトの単位は NANOSECOND です。

mysql> SELECT * FROM setup_timers WHERE NAME = 'stage';
+-------+------------+
| NAME  | TIMER_NAME |
+-------+------------+
| stage | NANOSECOND |
+-------+------------+

タイミングの単位を変更するには、TIMER_NAME 値を変更します。

mysql> UPDATE setup_timers SET TIMER_NAME = 'MICROSECOND'
    -> WHERE NAME = 'stage';

イベント収集の構成に関する追加情報については、セクション22.2「パフォーマンススキーマ構成」を参照してください。