events_transactions_current表
该events_transactions_current表包含当前交易事件。该表为每个线程存储一行,以显示该线程最近监视的事务事件的当前状态,因此没有用于配置表大小的系统变量。例如:
mysql>SELECT *FROM performance_schema.events_transactions_currentLIMIT 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表是已结束的最近事务事件的集合,每个线程最多可以有最大的行数,而在所有线程上可以是全局的。
有关三个事务事件表之间的关系的更多信息,请参见“当前事件和历史事件的性能架构表”。
有关配置是否收集事务事件的信息,请参见“性能架构事务表”。
该events_transactions_current表包含以下列:
THREAD_ID,EVENT_ID与事件关联的线程以及事件开始时的线程当前事件号。在
THREAD_ID和EVENT_ID一起值唯一标识行。没有两行具有相同的一对值。END_EVENT_ID此列设置为
NULL事件开始时的时间,并在事件结束时更新为线程的当前事件号。EVENT_NAME收集事件的仪器的名称。这是表中的
NAME值setup_instruments。仪器名称可能具有多个部分,并形成一个层次结构,如“性能模式仪器命名约定”中所述。STATE当前交易状态。值是
ACTIVE(之后START TRANSACTION或BEGIN),COMMITTED(之后COMMIT)或ROLLED BACK(之后ROLLBACK)。TRX_ID没用过。
GTID所述GTID列包含的值
gtid_next,其可以是一个ANONYMOUS,AUTOMATIC或使用的格式的GTIDUUID: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交易标识符的组成部分。它们具有“ XA事务SQL语句”中所述的格式。
XA_STATEXA事务的状态。值为
ACTIVE(afterXA START),IDLE(afterXA END),PREPARED(afterXA PREPARE),ROLLED BACK(afterXA ROLLBACK)或COMMITTED(afterXA COMMIT)。在复制从属服务器上,同一XA事务可以在
events_transactions_current表中出现,并且在不同线程上的状态不同。这是因为在准备好XA事务之后,它立即与从属应用程序线程分离,并且可以被从属服务器上的任何线程提交或回滚。该events_transactions_current表显示线程上最近监视的事务事件的当前状态,并且在线程空闲时不更新此状态。因此,XA交易仍可以显示在PREPARED在另一个线程处理完之后,原始应用程序线程的状态。为了肯定地标识仍处于PREPARED状态并且需要恢复的XA事务,请使用XA RECOVER语句而不是Performance Schema事务表。SOURCE源文件的名称,其中包含产生事件的检测代码以及发生检测的文件中的行号。这使您可以检查源以确定确切涉及的代码。
TIMER_START,TIMER_END,TIMER_WAIT事件的时间信息。这些值的单位是皮秒(万亿分之一秒)。在
TIMER_START和TIMER_END当事件时间开始和结束的值表示。TIMER_WAIT是事件经过的时间(持续时间)。如果事件尚未结束,
TIMER_END则为当前计时器值,并且TIMER_WAIT为到目前为止的时间(TIMER_END-TIMER_START)。如果事件是从具有产生仪器
TIMED = NO,定时信息不是收集,并且TIMER_START,TIMER_END以及TIMER_WAIT是所有NULL。有关以皮秒为单位的事件时间和影响时间值的因素的讨论,请参见“性能模式事件时序”。
ACCESS_MODE事务访问方式。值为
READ WRITE或READ ONLY。ISOLATION_LEVEL事务隔离级别。值是
REPEATABLE READ,READ COMMITTED,READ UNCOMMITTED,或SERIALIZABLE。AUTOCOMMIT事务启动时是否启用了自动提交模式。
NUMBER_OF_SAVEPOINTS,NUMBER_OF_ROLLBACK_TO_SAVEPOINT,NUMBER_OF_RELEASE_SAVEPOINT的数量
SAVEPOINT,ROLLBACK TO SAVEPOINT以及RELEASE SAVEPOINT在交易期间发表的声明。OBJECT_INSTANCE_BEGIN没用过。
NESTING_EVENT_IDEVENT_ID嵌套该事件的事件的值。NESTING_EVENT_TYPE嵌套事件类型。值是
TRANSACTION,STATEMENT,STAGE,或WAIT。(TRANSACTION由于事务无法嵌套,因此不会出现。)
该events_transactions_current表具有以下索引:
- (
THREAD_ID,EVENT_ID)上的主键
TRUNCATE TABLE允许用于events_transactions_current表格。它删除行。
