Documentation Home

27.12.7.1 events_transactions_current 表

events_transactions_current 表包含当前交易事件。该表为每个线程存储一行,显示线程最近监视的事务事件的当前状态,因此没有用于配置表大小的系统变量。例如:

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_historyevents_transactions_history_long 表是最近结束的事务事件的集合,分别达到每个线程的最大行数和所有线程的全局行数。

有关三个事务事件表之间关系的更多信息,请参阅 第 27.9 节,“当前和历史事件的性能模式表”

有关配置是否收集事务事件的信息,请参阅 第 27.12.7 节,“性能模式事务表”

events_transactions_current 表有以下列:

  • THREAD_ID,EVENT_ID

    与事件关联的线程和事件开始时的线程当前事件号。THREAD_IDEVENT_ID值一起唯一标识该行。 没有两行具有相同的一对值。

  • END_EVENT_ID

    此列设置为NULL事件开始时,并在事件结束时更新为线程当前事件编号。

  • EVENT_NAME

    从中收集事件的工具的名称。这是表中的NAMEsetup_instruments。仪器名称可能有多个部分并形成一个层次结构,如 第 27.6 节“性能模式仪器命名约定”中所述。

  • STATE

    当前交易状态。值为 ACTIVE(after START TRANSACTIONor BEGIN)、 COMMITTED(after COMMIT)或ROLLED BACK(after ROLLBACK)。

  • TRX_ID

    没用过。

  • GTID

    GTID 列包含 的值 gtid_next,它可以是ANONYMOUSAUTOMATIC或使用格式的 GTID 之一UUID:NUMBER。对于使用 的事务 gtid_next=AUTOMATIC,这是所有正常的客户端事务,GTID 列在事务提交和分配实际 GTID 时发生变化。如果gtid_modeONON_PERMISSIVE,则 GTID 列更改为事务的 GTID。如果gtid_modeOFFOFF_PERMISSIVE,则 GTID 列更改为ANONYMOUS

  • XID_FORMAT_ID, XID_GTRIDXID_BQUAL

    XA 事务标识符的元素。它们具有第 13.3.8.1 节“XA 事务 SQL 语句”中描述的格式。

  • XA_STATE

    XA 事务的状态。值为 ACTIVE(after XA START)、IDLE(after XA END)、PREPARED(after XA PREPARE)、ROLLED BACK(after XA ROLLBACK) 或COMMITTED (after XA COMMIT)。

    events_transactions_current 在副本上,相同的 XA 事务可以在不同线程上以不同状态 出现在 表中。这是因为在准备好 XA 事务后,它会立即与副本的应用程序线程分离,并且可以由副本上的任何线程提交或回滚。该 events_transactions_current 表显示线程上最近监视的事务事件的当前状态,并且在线程空闲时不更新此状态。所以XA事务仍然可以显示在 PREPARED原始应用线程的状态,在它被另一个线程处理后。要明确识别仍处于 PREPARED状态且需要恢复的 XA 事务,请使用 XA RECOVER语句而不是 Performance Schema 事务表。

  • SOURCE

    源文件的名称,其中包含生成事件的检测代码以及检测发生的文件中的行号。这使您能够检查源代码以准确确定涉及的代码。

  • TIMER_START, TIMER_END, TIMER_WAIT

    事件的时间信息。这些值的单位是皮秒(万亿分之一秒)。和 值指示事件计时何时开始TIMER_STARTTIMER_END结束。TIMER_WAIT是事件经过的时间(持续时间)。

    如果事件尚未完成,TIMER_END 则为当前计时器值并且 TIMER_WAIT是到目前为止经过的时间 ( TIMER_END- TIMER_START)。

    如果事件是由具有 的仪器产生的 TIMED = NO,则不会收集计时信息,并且TIMER_STARTTIMER_ENDTIMER_WAIT都是 NULL

    有关皮秒作为事件时间单位的讨论以及影响时间值的因素,请参阅 第 27.4.1 节,“性能模式事件计时”

  • ACCESS_MODE

    事务访问模式。值为READ WRITEREAD ONLY

  • ISOLATION_LEVEL

    事务隔离级别。值为 REPEATABLE READREAD COMMITTEDREAD UNCOMMITTEDSERIALIZABLE

  • AUTOCOMMIT

    事务开始时是否启用了自动提交模式。

  • 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

    嵌套事件类型。值为 TRANSACTIONSTATEMENTSTAGEWAIT。(TRANSACTION 不出现是因为事务不能嵌套。)

events_transactions_current 表具有以下索引:

  • THREAD_ID( , EVENT_ID) 上的主键

TRUNCATE TABLE表是允许的events_transactions_current 。它删除行。