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
使用されません。
-
GTID
GTID カラムには
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_BQUAL
XA トランザクション識別子の要素。 これらの形式は、セクション13.3.8.1「XA トランザクション SQL ステートメント」 で説明されている形式です。
-
XA_STATE
XA トランザクションの状態。 値は、
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
テーブルに対して許可されています。 行が削除されます。