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


22.9.9.3 ステートメントサマリーテーブル

MySQL 5.6.3 以降、パフォーマンススキーマは現在および最近のステートメントイベントを集計するためのテーブルを保守し、その情報をサマリーテーブルに集計します。セクション22.9.6「パフォーマンススキーマステートメントイベントテーブル」で、ステートメントサマリーが基づいているイベントについて説明しています。ステートメントイベントの内容、現在および最近のステートメントイベントテーブル、およびステートメントイベント収集の制御方法に関する情報については、その説明を参照してください。

各ステートメントサマリーテーブルには、テーブルのイベントの集計方法を示す 1 つまたは複数のグループ化カラムがあります。イベント名は、setup_instruments テーブル内のイベントインストゥルメントの名前を表します。

  • events_statements_summary_by_digest には SCHEMA_NAME および DIGEST カラムがあります。各行は特定のスキーマ/ダイジェスト値のイベントを要約します。( DIGEST_TEXT カラムは、対応する正規化されたステートメントダイジェストテキストを格納しますが、グループ化カラムでもサマリーカラムでもありません。)

    このテーブルは、5.6.5 で追加されました。MySQL 5.6.9 より前では、SCHEMA_NAME カラム値がなく、グループ化は DIGEST 値のみに基づきます。

  • events_statements_summary_by_thread_by_event_name には THREAD_ID および EVENT_NAME カラムがあります。各行は特定のスレッドおよびイベント名のイベントを要約します。

  • events_statements_summary_global_by_event_name には EVENT_NAME カラムがあります。各行は特定のイベント名のイベントを要約します。

すべてのステートメントサマリーテーブルには、集計された値を格納するこれらのサマリーカラムがあります。

  • COUNT_STARSUM_TIMER_WAITMIN_TIMER_WAITAVG_TIMER_WAITMAX_TIMER_WAIT

    ステートメントサマリーテーブルは、events_waits_current ではなく events_statements_current からイベントを集計することを除き、これらのカラムはイベント待機サマリーテーブル (セクション22.9.9.1「イベント待機サマリーテーブル」を参照) の同じ名前のカラムに似ています。

  • SUM_xxx

    events_statements_current テーブル内の対応する xxx カラムの集計。たとえば、ステートメントサマリーテーブルの SUM_LOCK_TIME および SUM_ERRORS カラムは events_statements_current テーブルの LOCK_TIME および ERRORS カラムの集計です。

events_statements_summary_by_digest テーブルにはこれらの追加のサマリーカラムがあります。

  • FIRST_SEEN_TIMESTAMPLAST_SEEN_TIMESTAMP

    特定のダイジェスト値を持つステートメントが最初に確認された時間と最後に確認された時間。

ステートメントイベントサマリー情報の例:

mysql> SELECT * FROM events_statements_summary_global_by_event_name\G
*************************** 1. row ***************************
                 EVENT_NAME: statement/sql/select
                 COUNT_STAR: 25
             SUM_TIMER_WAIT: 1535983999000
             MIN_TIMER_WAIT: 209823000
             AVG_TIMER_WAIT: 61439359000
             MAX_TIMER_WAIT: 1363397650000
              SUM_LOCK_TIME: 20186000000
                 SUM_ERRORS: 0
               SUM_WARNINGS: 0
          SUM_ROWS_AFFECTED: 0
              SUM_ROWS_SENT: 388
          SUM_ROWS_EXAMINED: 370
SUM_CREATED_TMP_DISK_TABLES: 0
     SUM_CREATED_TMP_TABLES: 0
       SUM_SELECT_FULL_JOIN: 0
 SUM_SELECT_FULL_RANGE_JOIN: 0
           SUM_SELECT_RANGE: 0
     SUM_SELECT_RANGE_CHECK: 0
            SUM_SELECT_SCAN: 6
      SUM_SORT_MERGE_PASSES: 0
             SUM_SORT_RANGE: 0
              SUM_SORT_ROWS: 0
              SUM_SORT_SCAN: 0
          SUM_NO_INDEX_USED: 6
     SUM_NO_GOOD_INDEX_USED: 0
...

TRUNCATE TABLE はステートメントサマリーテーブルに使用できます。events_statements_summary_by_digest に対して、それはテーブルを空にします。ほかのステートメントサマリーテーブルに対して、それは行を削除するのではなく、サマリーカラムを 0 にリセットします。

ステートメントダイジェストアグリゲーションルール

statement_digest コンシューマを有効にすると、ステートメントの完了時に、events_statements_summary_by_digest へのアグリゲーションが次のように行われます。アグリゲーションはステートメントに対して計算された DIGEST 値に基づきます。

  • 完了したばかりのステートメントのダイジェスト値のある events_statements_summary_by_digest 行がすでに存在する場合、ステートメントの統計はその行に集計されます。LAST_SEEN カラムは現在の時間に更新されます。

  • 完了したばかりのステートメントのダイジェスト値のある行がなく、テーブルがいっぱいでない場合、そのステートメントに対して新しい行が作成されます。FIRST_SEEN および LAST_SEEN カラムは現在の時間で初期化されます。

  • 完了したばかりのステートメントのステートメントダイジェスト値のある行がなく、テーブルがいっぱいである場合、完了したばかりのステートメントの統計が、必要に応じて作成される特別な多目的行に、DIGEST = NULL で追加されます。この行が作成された場合、FIRST_SEEN および LAST_SEEN カラムは現在の時間で初期化されます。そうでない場合、LAST_SEEN カラムが現在の時間で更新されます。

パフォーマンススキーマテーブルには、メモリー制約による最大サイズがあるため、DIGEST = NULL の行は保守されます。DIGEST = NULL 行は、ほかの行に一致しないダイジェストが、サマリーテーブルがいっぱいである場合でも、共通のほかのバケットを使用して、カウントされることを許可します。この行は、ダイジェストサマリーが代表的であるかどうかを推定するのに役立ちます。

  • すべてのダイジェストのうち 5% を表す COUNT_STAR 値がある DIGEST = NULL 行は、ダイジェストサマリーテーブルがきわめて代表的であることを示します。ほかの行が、存在するステートメントの 95% を占めます。

  • すべてのダイジェストのうち 50% を表す COUNT_STAR 値がある DIGEST = NULL 行は、ダイジェストサマリーテーブルがあまり代表的でないことを示します。ほかの行は、存在するステートメントの半分しか占めません。たいていの場合に DBA は DIGEST = NULL 行にカウントされる行の多くが、代わりにより具体的な行を使用してカウントされるように、最大テーブルサイズを拡大するべきです。これを実行するには、サーバーの起動時に、performance_schema_digests_size システム変数を大きな値に設定します。デフォルトサイズは 200 です。


User Comments
Sign Up Login You must be logged in to post a comment.