25.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_history и events_transactions_history_long представляют собой коллекции завершенных событий последних транзакций, до максимального количества строк на поток и по всем потокам в целом, соответственно.
Для получения дополнительной информации об отношениях между тремя таблицами событий транзакций см. Раздел 25.9, «Таблицы Performance Schema для текущих и исторических событий».
Для получения информации о настройке сбора событий транзакций см. Раздел 25.12.7, «Таблицы Performance Schema для транзакций».
В таблице events_transactions_current есть следующие столбцы:
-
THREAD_ID,EVENT_IDПоток, связанный с событием, и номер текущего события потока, когда событие начинается. Значения
THREAD_IDиEVENT_IDвместе однозначно идентифицируют строку. Две строки не имеют одинаковых пар значений. -
END_EVENT_IDЭтот столбец устанавливается в значение
NULLпри начале события и обновляется до номера текущего события потока при окончании события. -
EVENT_NAMEИмя инструмента, из которого было собрано событие. Это значение
NAMEиз таблицыsetup_instruments. Имена инструментов могут иметь несколько частей и формировать иерархию, как описано в Разделе 25.6, «Конвенции наименования инструментов Performance Schema». -
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.7.1, «SQL-операции XA-транзакций».
-
XA_STATEСостояние XA транзакции. Значение равно
ACTIVE(послеXA START),IDLE(послеXA END),PREPARED(послеXA PREPARE),ROLLED BACK(послеXA ROLLBACK) илиCOMMITTED(послеXA COMMIT).На реплике та же XA транзакция может отображаться в таблице
events_transactions_currentс разными состояниями в разных потоках. Это происходит потому, что сразу после подготовки XA транзакции она отсоединяется от потока прикладного слоя репликации и может быть подтверждена или отменена любым потоком на реплике. Таблицаevents_transactions_currentотображает текущее состояние последнего отслеживаемого события транзакции в потоке и не обновляет это состояние, когда поток неактивен. Таким образом, XA транзакция может по-прежнему отображаться в состоянииPREPAREDдля исходного потока прикладного слоя, после ее обработки другим потоком. Для точного определения XA транзакций, которые все еще находятся в состоянииPREPAREDи требуют восстановления, используйте оператор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.Для обсуждения пикосекунд как единицы измерения времени событий и факторов, влияющих на значения времени, см. Раздел 25.4.1, «Измерение времени событий Performance Schema».
-
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_IDЗначение
EVENT_IDсобытия, внутри которого вложено это событие. -
NESTING_EVENT_TYPEТип вложенного события. Значение равно
TRANSACTION,STATEMENT,STAGEилиWAIT. (TRANSACTIONне отображается, потому что транзакции не могут быть вложены.)
TRUNCATE TABLE разрешен для таблицы events_transactions_current. Он удаляет строки.
© 2025 Oracle
Licensed under the GPLv2 License.