このページは機械翻訳したものです。
events_transactions_current テーブルには、現在のトランザクションイベントが含まれます。 テーブルには、スレッドごとに最新の監視対象トランザクションイベントの現在のステータスを示す 1 行が格納されるため、テーブルサイズを構成するためのシステム変数はありません。 例:
mysql> SELECT *
FROM performance_schema.events_transactions_current LIMIT 1\G
*************************** 1. row ***************************
THREAD_ID: 26
EVENT_ID: 7
END_EVENT_ID: NULL
EVENT_NAME: transaction
STATE: ACTIVE
TRX_ID: NULL
GTID: 3E11FA47-71CA-11E1-9E33-C80AA9429562:56
XID: NULL
XA_STATE: NULL
SOURCE: transaction.cc:150
TIMER_START: 420833537900000
TIMER_END: NULL
TIMER_WAIT: NULL
ACCESS_MODE: READ WRITE
ISOLATION_LEVEL: REPEATABLE READ
AUTOCOMMIT: NO
NUMBER_OF_SAVEPOINTS: 0
NUMBER_OF_ROLLBACK_TO_SAVEPOINT: 0
NUMBER_OF_RELEASE_SAVEPOINT: 0
OBJECT_INSTANCE_BEGIN: NULL
NESTING_EVENT_ID: 6
NESTING_EVENT_TYPE: STATEMENT
トランザクションイベント行を含むテーブルの中で、最も基本的なのは events_transactions_current です。 トランザクションイベント行を含む他のテーブルは、現在のイベントから論理的に導出されます。 たとえば、events_transactions_history テーブルと events_transactions_history_long テーブルは、終了した最新のトランザクションイベントのコレクションで、スレッド当たりの最大行数まで、およびすべてのスレッドにわたってグローバルに終了します。
3 つのトランザクションイベントテーブル間の関係の詳細は、セクション27.9「現在および過去のイベントのパフォーマンススキーマテーブル」 を参照してください。
トランザクションイベントを収集するかどうかの構成の詳細は、セクション27.12.7「パフォーマンススキーマのトランザクションテーブル」 を参照してください。
events_transactions_current テーブルには、次のカラムがあります:
-
THREAD_ID、EVENT_IDイベントに関連付けられたスレッドとイベントの起動時のスレッドの現在のイベント番号。 ともに取得される
THREAD_IDとEVENT_IDの値によって、行が一意に識別されます。 同じ値のペアを持つ行は 2 つありません。 -
END_EVENT_IDこのカラムは、イベントの起動時に
NULLに設定され、イベントの終了時にスレッドの現在のイベント番号に更新されます。 -
EVENT_NAMEイベントが収集されたインストゥルメントの名前。 これは
setup_instrumentsテーブルからのNAME値です。 セクション27.6「パフォーマンススキーマインストゥルメント命名規則」に説明するように、インストゥルメント名には複数の部分があり、階層を形成することがあります。 -
STATE現在のトランザクションの状態。 値は、
ACTIVE(START TRANSACTIONまたはBEGINの後)、COMMITTED(COMMITの後) またはROLLED BACK(ROLLBACKの後) です。 -
TRX_ID使用されません。
-
GTIDGTID カラムには
gtid_nextの値が含まれ、ANONYMOUS、AUTOMATICまたは GTID のいずれかをUUID:NUMBERの形式で指定できます。gtid_next=AUTOMATIC(すべての通常のクライアントトランザクション) を使用するトランザクションの場合、GTID カラムは、トランザクションがコミットされ、実際の GTID が割り当てられると変更されます。gtid_modeがONまたはON_PERMISSIVEの場合、GTID カラムはトランザクション GTID に変更されます。gtid_modeがOFFまたはOFF_PERMISSIVEの場合、GTID カラムはANONYMOUSに変更されます。 -
XID_FORMAT_ID、XID_GTRIDおよびXID_BQUALXA トランザクション識別子の要素。 これらの形式は、セクション13.3.8.1「XA トランザクション SQL ステートメント」 で説明されている形式です。
-
XA_STATEXA トランザクションの状態。 値は、
ACTIVE(XA STARTの後)、IDLE(XA ENDの後)、PREPARED(XA PREPAREの後)、ROLLED BACK(XA ROLLBACKの後) またはCOMMITTED(XA COMMITの後) です。レプリカでは、
events_transactions_currentテーブルに同じ XA トランザクションが表示され、スレッドごとに状態が異なる場合があります。 これは、XA トランザクションが準備された直後にレプリカアプライヤスレッドからデタッチされ、レプリカ上の任意のスレッドによってコミットまたはロールバックできるためです。events_transactions_currentテーブルには、スレッド上の最新の監視対象トランザクションイベントの現在のステータスが表示され、スレッドがアイドル状態の場合、このステータスは更新されません。 そのため、XA トランザクションは、別のスレッドによって処理された後も、元のアプライヤスレッドのPREPARED状態で表示できます。PREPARED状態のままでリカバリが必要な XA トランザクションを肯定的に識別するには、パフォーマンススキーマトランザクションテーブルではなく、XA RECOVERステートメントを使用します。 -
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「パフォーマンススキーマイベントタイミング」を参照してください。
-
ACCESS_MODEトランザクションアクセスモード。 値は
READ WRITEまたはREAD ONLYです。 -
ISOLATION_LEVELトランザクション分離レベル。 値は
REPEATABLE READ,READ COMMITTED,READ UNCOMMITTEDまたはSERIALIZABLEです。 -
AUTOCOMMITトランザクションの開始時に autcommit モードが有効化されたかどうか。
-
NUMBER_OF_SAVEPOINTS,NUMBER_OF_ROLLBACK_TO_SAVEPOINT,NUMBER_OF_RELEASE_SAVEPOINTトランザクション中に発行された
SAVEPOINT、ROLLBACK TO SAVEPOINTおよびRELEASE SAVEPOINTステートメントの数。 -
OBJECT_INSTANCE_BEGIN使用されません。
-
NESTING_EVENT_IDこのイベントが中にネストされているイベントの
EVENT_ID値。 -
NESTING_EVENT_TYPEネストしているイベントの種類。 値は
TRANSACTION,STATEMENT,STAGEまたはWAITです。 (トランザクションはネストできないため、TRANSACTIONは表示されません。)
events_transactions_current テーブルには次のインデックスがあります:
主キー (
THREAD_ID、EVENT_ID)
TRUNCATE TABLE は events_transactions_current テーブルに対して許可されています。 行が削除されます。