29.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 представляют собой коллекции завершенных событий последних транзакций до максимального числа строк на поток и глобально по всем потокам, соответственно.
Более подробную информацию о взаимосвязи между тремя таблицами событий транзакций см. в разделе 29.9, «Таблицы Performance Schema для текущих и исторических событий».
Сведения о конфигурации сбора событий транзакций см. в разделе 29.12.7, «Таблицы Performance Schema для транзакций».
Таблица events_transactions_current имеет следующие столбцы:
-
THREAD_ID,EVENT_IDПоток, связанный с событием, и номер текущего события потока в момент начала события. Значения
THREAD_IDиEVENT_IDвместе однозначно идентифицируют строку. Ни две строки не имеют одинаковой пары значений. -
END_EVENT_IDЭтот столбец устанавливается в значение
NULLпри запуске события и обновляется до номера текущего события потока при завершении события. -
EVENT_NAMEНазвание инструмента, из которого было собрано событие. Это значение
NAMEиз таблицыsetup_instruments. Имена инструментов могут иметь несколько частей и образовывать иерархию, как описано в разделе 29.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 транзакции. Они имеют формат, описанный в разделе 15.3.8.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.Подробнее о пикосекундах как единице измерения времен событий и факторах, влияющих на значения времени, см. в разделе 29.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не отображается, так как транзакции не могут быть вложенными.)
В таблице events_transactions_current есть такие индексы:
Первичный ключ по (
THREAD_ID,EVENT_ID)
TRUNCATE TABLE разрешена для таблицы events_transactions_current. Она удаляет строки.
© 2025 Oracle
Licensed under the GPLv2 License.