events_statements_current
テーブルには、現在のステートメントイベントが含まれます。 テーブルには、スレッドごとに最新のモニター対象ステートメントイベントの現在のステータスを示す 1 行が格納されるため、テーブルサイズを構成するためのシステム変数はありません。
ステートメントイベント行を格納するテーブルのうち、events_statements_current
はもっとも基本的です。 ステートメントイベント行を格納するほかのテーブルは論理的に現在のイベントから派生します。 たとえば、events_statements_history
テーブルと events_statements_history_long
テーブルは、終了した最新のステートメントイベントのコレクションで、スレッド当たりの最大行数まで、およびすべてのスレッドにわたってグローバルに終了します。
3 つの events_statements_
イベントテーブル間の関係の詳細は、セクション27.9「現在および過去のイベントのパフォーマンススキーマテーブル」 を参照してください。
xxx
ステートメントイベントを収集するかどうかの構成については、セクション27.12.6「パフォーマンススキーマステートメントイベントテーブル」 を参照してください。
events_statements_current
テーブルにはこれらのカラムがあります。
-
THREAD_ID
、EVENT_ID
イベントに関連付けられたスレッドとイベントの起動時のスレッドの現在のイベント番号。 ともに取得される
THREAD_ID
とEVENT_ID
の値によって、行が一意に識別されます。 同じ値のペアを持つ行は 2 つありません。 -
END_EVENT_ID
このカラムは、イベントの起動時に
NULL
に設定され、イベントの終了時にスレッドの現在のイベント番号に更新されます。 -
EVENT_NAME
イベントが収集されたインストゥルメントの名前。 これは
setup_instruments
テーブルからのNAME
値です。 セクション27.6「パフォーマンススキーマインストゥルメント命名規則」に説明するように、インストゥルメント名には複数の部分があり、階層を形成することがあります。SQL ステートメントの場合、ステートメントが解析されるまで、
EVENT_NAME
値は最初statement/com/Query
であり、その後セクション27.12.6「パフォーマンススキーマステートメントイベントテーブル」に説明するように、より適切な値に変更されます。 -
SOURCE
イベントを生成した、インストゥルメントされたコードを格納するソースファイルの名前と、インストゥルメンテーションが行われたファイルの行番号。 これにより、ソースをチェックして、コードに含まれるものを正確に判断することができます。
-
TIMER_START
、TIMER_END
、TIMER_WAIT
イベントのタイミング情報。 これらの値の単位はピコ秒 (秒の 1 兆分の 1) です。
TIMER_START
およびTIMER_END
値は、イベントのタイミングが開始されたときと終了したときを示します。TIMER_WAIT
はイベントの経過時間 (期間) です。イベントが終了していない場合、
TIMER_END
は現在のタイマー値で、TIMER_WAIT
はこれまでに経過した時間です (TIMER_END
-TIMER_START
)。イベントが
TIMED = NO
のインストゥルメントから生成されている場合、タイミング情報は収集されず、TIMER_START
、TIMER_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_SCHEMA
、OBJECT_NAME
、OBJECT_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_ID
、EVENT_ID
)
TRUNCATE TABLE
は events_statements_current
テーブルに対して許可されています。 行が削除されます。