#### 27.12.7.1 事件\_交易\_当前表

[](<>)[](<>)

这[`events_transactions_current`](performance-schema-events-transactions-current-table.html)表包含当前事务事件。该表为每个线程存储一行，显示线程最近监控的事务事件的当前状态，因此没有用于配置表大小的系统变量。例如：

```
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`](performance-schema-events-transactions-current-table.html)是最根本的。包含事务事件行的其他表在逻辑上是从当前事件派生的。例如，[`events_transactions_history`](performance-schema-events-transactions-history-table.html)和[`events_transactions_history_long`](performance-schema-events-transactions-history-long-table.html)表是最近已结束的事务事件的集合，分别达到每个线程和全局所有线程的最大行数。

有关三个事务事件表之间关系的更多信息，请参见[第 27.9 节，“当前和历史事件的性能模式表”](performance-schema-event-tables.html).

有关配置是否收集事务事件的信息，请参阅[第 27.12.7 节，“性能模式事务表”](performance-schema-transaction-tables.html).

这[`events_transactions_current`](performance-schema-events-transactions-current-table.html)表有这些列：

-   `THREAD_ID`,`EVENT_ID`

    事件启动时与事件关联的线程和线程当前事件编号。这`THREAD_ID`和`EVENT_ID`加在一起的值唯一地标识该行。没有两行具有相同的一对值。

-   `END_EVENT_ID`

    此列设置为`空值`当事件开始并更新为事件结束时的线程当前事件号。

-   `EVENT_NAME`

    从中收集事件的工具的名称。这是一个`姓名`从价值[`setup_instruments`](performance-schema-setup-instruments-table.html)桌子。仪器名称可能有多个部分并形成层次结构，如在[第 27.6 节，“性能模式仪器命名约定”](performance-schema-instrument-naming.html).

-   `状态`

    当前交易状态。值为`积极的`（后[`开始交易`](commit.html)要么[`开始`](commit.html)),`坚定的`（后[`犯罪`](commit.html)）， 要么`回滚`（后[`回滚`](commit.html)）。

-   `TRX_ID`

    没用过。

-   `GTID`

    GTID 列包含的值[`gtid_next`](replication-options-gtids.html#sysvar_gtid_next)，它可以是其中之一`匿名的`,`自动的`, 或使用格式的 GTID`UUID：号码`.对于使用[`gtid_next=自动`](replication-options-gtids.html#sysvar_gtid_next)，这是所有正常的客户端事务，当事务提交并分配实际的 GTID 时，GTID 列会发生变化。如果[`gtid_mode`](replication-options-gtids.html#sysvar_gtid_mode)或者是`在`要么`ON_PERMISSIVE`，GTID 列更改为事务的 GTID。如果`gtid_mode`或者是`离开`要么`OFF_PERMISSIVE`，GTID 列更改为`匿名的`.

-   `XID_FORMAT_ID`,`XID_GTRID`， 和`XID_BQUAL`

    XA 事务标识符的元素。它们具有中描述的格式[第 13.3.8.1 节，“XA 事务 SQL 语句”](xa-statements.html).

-   `XA_STATE`

    XA 事务的状态。值为`积极的`（后[`XA 开始`](xa-statements.html)),`闲置的`（后[`XA结束`](xa-statements.html)),`准备好的`（后[`XA 准备`](xa-statements.html)),`回滚`（后[`XA 回滚`](xa-statements.html)）， 要么`坚定的`（后[`XA 提交`](xa-statements.html)）。

    在副本上，相同的 XA 事务可以出现在[`events_transactions_current`](performance-schema-events-transactions-current-table.html)在不同线程上具有不同状态的表。这是因为在 XA 事务准备好之后，它立即与副本的应用程序线程分离，并且可以由副本上的任何线程提交或回滚。这[`events_transactions_current`](performance-schema-events-transactions-current-table.html)table 显示线程上最近监视的事务事件的当前状态，并且在线程空闲时不更新此状态。所以 XA 交易仍然可以显示在`准备好的`原始应用程序线程的状态，在它被另一个线程处理之后。积极识别仍处于`准备好的`状态和需要恢复，使用[`XA 恢复`](xa-statements.html)语句而不是 Performance Schema 事务表。

-   `资源`

    包含产生事件的检测代码的源文件的名称和检测发生的文件中的行号。这使您能够检查源代码以确定所涉及的确切代码。

-   `TIMER_START`,`TIMER_END`,`TIMER_WAIT`

    事件的时间信息。这些值的单位是皮秒（万亿分之一秒）。这`TIMER_START`和`TIMER_END`值指示事件计时开始和结束的时间。`TIMER_WAIT`是事件经过的时间（持续时间）。

    如果活动还没有结束，`TIMER_END`是当前计时器值，并且`TIMER_WAIT`是到目前为止经过的时间（`TIMER_END`-`TIMER_START`）。

    如果事件是从具有`定时 = 否`，不收集计时信息，并且`TIMER_START`,`TIMER_END`， 和`TIMER_WAIT`都是`空值`.

    有关以皮秒为单位的事件时间和影响时间值的因素的讨论，请参阅[第 27.4.1 节，“性能模式事件时序”](performance-schema-timing.html).

-   `访问模式`

    事务访问模式。值为`读写`要么`只读`.

-   `ISOLATION_LEVEL`

    事务隔离级别。值为[`可重复阅读`](innodb-transaction-isolation-levels.html#isolevel_repeatable-read), [`阅读已提交`](innodb-transaction-isolation-levels.html#isolevel_read-committed), [`阅读未提交`](innodb-transaction-isolation-levels.html#isolevel_read-uncommitted)， 要么[`可序列化`](innodb-transaction-isolation-levels.html#isolevel_serializable).

-   `自动提交`

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

-   `NUMBER_OF_SAVEPOINTS 个`, `NUMBER_OF_ROLLBACK_TO_SAVEPOINT`, `NUMBER_OF_RELEASE_SAVEPOINT`

    的数量[`保存点`](savepoint.html), [`回滚到保存点`](savepoint.html)， 和[`释放保存点`](savepoint.html)交易期间发表的声明。

-   `OBJECT_INSTANCE_BEGIN`

    没用过。

-   `NESTING_EVENT_ID`

    这`EVENT_ID`嵌套此事件的事件的值。

-   `NESTING_EVENT_TYPE`

    嵌套事件类型。值为`交易`,`陈述`,`阶段`， 要么`等待`.(`交易`不会出现，因为事务不能嵌套。）

    这[`events_transactions_current`](performance-schema-events-transactions-current-table.html)表有这些索引：

-   主键打开 (`THREAD_ID`,`EVENT_ID`)

[`截断表`](truncate-table.html)被允许用于[`events_transactions_current`](performance-schema-events-transactions-current-table.html)桌子。它删除行。
