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


27.12.7.1 events_transactions_current テーブル

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_IDEVENT_ID

    イベントに関連付けられたスレッドとイベントの起動時のスレッドの現在のイベント番号。 ともに取得される THREAD_IDEVENT_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 の値が含まれ、ANONYMOUSAUTOMATIC または GTID のいずれかを UUID:NUMBER の形式で指定できます。 gtid_next=AUTOMATIC(すべての通常のクライアントトランザクション) を使用するトランザクションの場合、GTID カラムは、トランザクションがコミットされ、実際の GTID が割り当てられると変更されます。 gtid_modeON または ON_PERMISSIVE の場合、GTID カラムはトランザクション GTID に変更されます。 gtid_modeOFF または OFF_PERMISSIVE の場合、GTID カラムは ANONYMOUS に変更されます。

  • XID_FORMAT_IDXID_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_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「パフォーマンススキーマイベントタイミング」を参照してください。

  • 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

    トランザクション中に発行された SAVEPOINTROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメントの数。

  • OBJECT_INSTANCE_BEGIN

    使用されません。

  • NESTING_EVENT_ID

    このイベントが中にネストされているイベントの EVENT_ID 値。

  • NESTING_EVENT_TYPE

    ネストしているイベントの種類。 値は TRANSACTION, STATEMENT, STAGE または WAIT です。 (トランザクションはネストできないため、TRANSACTION は表示されません。)

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

  • 主キー (THREAD_IDEVENT_ID)

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


関連キーワード:  テーブル, イベント, トランザクション, パフォーマンス, スキーマ, events, TIMER, transactions, XA, replication