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


27.12.6.1 events_statements_current テーブル

events_statements_current テーブルには、現在のステートメントイベントが含まれます。 テーブルには、スレッドごとに最新のモニター対象ステートメントイベントの現在のステータスを示す 1 行が格納されるため、テーブルサイズを構成するためのシステム変数はありません。

ステートメントイベント行を格納するテーブルのうち、events_statements_current はもっとも基本的です。 ステートメントイベント行を格納するほかのテーブルは論理的に現在のイベントから派生します。 たとえば、events_statements_history テーブルと events_statements_history_long テーブルは、終了した最新のステートメントイベントのコレクションで、スレッド当たりの最大行数まで、およびすべてのスレッドにわたってグローバルに終了します。

3 つの events_statements_xxx イベントテーブル間の関係の詳細は、セクション27.9「現在および過去のイベントのパフォーマンススキーマテーブル」 を参照してください。

ステートメントイベントを収集するかどうかの構成については、セクション27.12.6「パフォーマンススキーマステートメントイベントテーブル」 を参照してください。

events_statements_current テーブルにはこれらのカラムがあります。

  • THREAD_IDEVENT_ID

    イベントに関連付けられたスレッドとイベントの起動時のスレッドの現在のイベント番号。 ともに取得される THREAD_IDEVENT_ID の値によって、行が一意に識別されます。 同じ値のペアを持つ行は 2 つありません。

  • END_EVENT_ID

    このカラムは、イベントの起動時に NULL に設定され、イベントの終了時にスレッドの現在のイベント番号に更新されます。

  • EVENT_NAME

    イベントが収集されたインストゥルメントの名前。 これは setup_instruments テーブルからの NAME 値です。 セクション27.6「パフォーマンススキーマインストゥルメント命名規則」に説明するように、インストゥルメント名には複数の部分があり、階層を形成することがあります。

    SQL ステートメントの場合、ステートメントが解析されるまで、EVENT_NAME 値は最初 statement/com/Query であり、その後セクション27.12.6「パフォーマンススキーマステートメントイベントテーブル」に説明するように、より適切な値に変更されます。

  • SOURCE

    イベントを生成した、インストゥルメントされたコードを格納するソースファイルの名前と、インストゥルメンテーションが行われたファイルの行番号。 これにより、ソースをチェックして、コードに含まれるものを正確に判断することができます。

  • TIMER_STARTTIMER_ENDTIMER_WAIT

    イベントのタイミング情報。 これらの値の単位はピコ秒 (秒の 1 兆分の 1) です。 TIMER_START および TIMER_END 値は、イベントのタイミングが開始されたときと終了したときを示します。 TIMER_WAIT はイベントの経過時間 (期間) です。

    イベントが終了していない場合、TIMER_END は現在のタイマー値で、TIMER_WAIT はこれまでに経過した時間です (TIMER_END - TIMER_START)。

    イベントが TIMED = NO のインストゥルメントから生成されている場合、タイミング情報は収集されず、TIMER_STARTTIMER_END、および TIMER_WAIT はすべて NULL になります。

    イベント時間の単位としてのピコ秒および時間値に影響する要因については、セクション27.4.1「パフォーマンススキーマイベントタイミング」を参照してください。

  • LOCK_TIME

    テーブルロックの待機に費やされた時間。 この値はマイクロ秒で計算されますが、ほかのパフォーマンススキーマタイマーとの比較を容易にするため、ピコ秒に正規化されます。

  • SQL_TEXT

    SQL ステートメントのテキスト。 SQL ステートメントに関連付けられていないコマンドの場合、値は NULL です。

    ステートメントの表示に使用できる最大領域は、デフォルトで 1024 バイトです。 この値を変更するには、サーバーの起動時に performance_schema_max_sql_text_length システム変数を設定します。 (この値を変更すると、他の「パフォーマンススキーマ」テーブルのカラムにも影響します。 セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。)

  • DIGEST

    ステートメントは、64 16 進数文字の文字列、または statements_digest コンシューマが no の場合は NULL として SHA-256 値をダイジェストします。 ステートメントダイジェストの詳細については、セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。

  • DIGEST_TEXT

    正規化されたステートメントダイジェストテキスト (statements_digest コンシューマが no の場合は NULL)。 ステートメントダイジェストの詳細については、セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。

    performance_schema_max_digest_length システム変数は、ダイジェスト値の格納に使用できるセッション当たりの最大バイト数を決定します。 ただし、ダイジェストバッファ内のキーワードやリテラル値などのステートメント要素のエンコーディングにより、ステートメントダイジェストの表示長が使用可能なバッファサイズより長くなる場合があります。 したがって、ステートメントイベントテーブルの DIGEST_TEXT カラムから選択された値は、performance_schema_max_digest_length 値を超えるように見える場合があります。

  • CURRENT_SCHEMA

    ステートメントのデフォルトのデータベース、何もない場合は NULL

  • OBJECT_SCHEMAOBJECT_NAMEOBJECT_TYPE

    ネストしたステートメント (ストアドプログラム) の場合、これらのカラムには親ステートメントに関する情報が含まれます。 それ以外の場合は、NULL です。

  • OBJECT_INSTANCE_BEGIN

    このカラムはステートメントを識別します。 この値はメモリー内のオブジェクトのアドレスです。

  • MYSQL_ERRNO

    ステートメント診断領域からのステートメントエラー番号。

  • RETURNED_SQLSTATE

    ステートメント診断領域からのステートメント SQLSTATE 値。

  • MESSAGE_TEXT

    ステートメント診断領域からのステートメントエラーメッセージ。

  • ERRORS

    ステートメントにエラーが発生したかどうか。 SQLSTATE 値が 00 (完了) または 01 (警告) から始まる場合、値は 0 です。 SQLSTATE 値がほかの値の場合、値は 1 です。

  • WARNINGS

    ステートメント診断領域からの警告数。

  • ROWS_AFFECTED

    ステートメントに影響を受けた行数。 影響を受けたの意味については、mysql_affected_rows()を参照してください。

  • ROWS_SENT

    ステートメントから返された行数。

  • ROWS_EXAMINED

    サーバーレイヤーによって検査された行数 (ストレージエンジン内部の処理はカウントされません)。

  • CREATED_TMP_DISK_TABLES

    Created_tmp_disk_tables ステータス変数と同様ですが、ステートメントに固有です。

  • CREATED_TMP_TABLES

    Created_tmp_tables ステータス変数と同様ですが、ステートメントに固有です。

  • SELECT_FULL_JOIN

    Select_full_join ステータス変数と同様ですが、ステートメントに固有です。

  • SELECT_FULL_RANGE_JOIN

    Select_full_range_join ステータス変数と同様ですが、ステートメントに固有です。

  • SELECT_RANGE

    Select_range ステータス変数と同様ですが、ステートメントに固有です。

  • SELECT_RANGE_CHECK

    Select_range_check ステータス変数と同様ですが、ステートメントに固有です。

  • SELECT_SCAN

    Select_scan ステータス変数と同様ですが、ステートメントに固有です。

  • SORT_MERGE_PASSES

    Sort_merge_passes ステータス変数と同様ですが、ステートメントに固有です。

  • SORT_RANGE

    Sort_range ステータス変数と同様ですが、ステートメントに固有です。

  • SORT_ROWS

    Sort_rows ステータス変数と同様ですが、ステートメントに固有です。

  • SORT_SCAN

    Sort_scan ステータス変数と同様ですが、ステートメントに固有です。

  • NO_INDEX_USED

    ステートメントがインデックスを使用せずにテーブルスキャンを実行した場合は 1、そうでない場合は 0。

  • NO_GOOD_INDEX_USED

    サーバーがステートメントに使用する適切なインデックスを見つけられなかった場合は 1、そうでない場合は 0。 追加の情報については、セクション8.8.2「EXPLAIN 出力フォーマット」で、EXPLAIN 出力の Extra カラムの Range checked for each record 値の説明を参照してください。

  • NESTING_EVENT_ID, NESTING_EVENT_TYPE, NESTING_EVENT_LEVEL

    これらの 3 つのカラムは、最上位 (ネストされていない) ステートメントおよびネストされたステートメント (ストアドプログラム内で実行される) に関する次のような情報を提供するために、他のカラムとともに使用されます。

    トップレベルのステートメントの場合:

    OBJECT_TYPE = NULL
    OBJECT_SCHEMA = NULL
    OBJECT_NAME = NULL
    NESTING_EVENT_ID = NULL
    NESTING_EVENT_TYPE = NULL
    NESTING_LEVEL = 0

    ネストしたステートメントの場合:

    OBJECT_TYPE = the parent statement object type
    OBJECT_SCHEMA = the parent statement object schema
    OBJECT_NAME = the parent statement object name
    NESTING_EVENT_ID = the parent statement EVENT_ID
    NESTING_EVENT_TYPE = 'STATEMENT'
    NESTING_LEVEL = the parent statement NESTING_LEVEL plus one
  • STATEMENT_ID

    SQL レベルでサーバーによって保持されるクエリー ID。 これらの ID はアトミックに増分されるグローバルカウンタを使用して生成されるため、この値はサーバーインスタンスに対して一意です。 このカラムは、MySQL 8.0.14 で追加されました。

events_statements_current テーブルには次のインデックスがあります:

  • 主キー (THREAD_IDEVENT_ID)

TRUNCATE TABLEevents_statements_current テーブルに対して許可されています。 行が削除されます。


関連キーワード:  テーブル, ステートメント, パフォーマンス, イベント, スキーマ, events, 変数, statements, ステータス, TIMER