文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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_historyevents_transactions_history_long 表格分別是已結束的最近交易事件的集合,每個執行緒和所有執行緒分別具有最大列數。

如需三個交易事件表格之間關係的詳細資訊,請參閱第 29.9 節「Performance Schema 用於目前與歷史事件的表格」

如需設定是否收集交易事件的相關資訊,請參閱第 29.12.7 節「Performance Schema 交易表格」

events_transactions_current 表格包含以下欄位:

  • THREAD_IDEVENT_ID

    與事件關聯的執行緒,以及事件開始時的執行緒目前事件編號。THREAD_IDEVENT_ID 的值組合起來可以唯一識別資料列。沒有兩個資料列具有相同的值對。

  • END_EVENT_ID

    此欄位在事件開始時設為 NULL,並在事件結束時更新為執行緒目前事件編號。

  • EVENT_NAME

    收集事件的工具名稱。這是 setup_instruments 表格中的 NAME 值。如第 29.6 節「效能結構描述工具命名慣例」中所述,工具名稱可能包含多個部分,並形成一個階層結構。

  • STATE

    目前的交易狀態。值為 ACTIVE(在 START TRANSACTIONBEGIN 之後)、COMMITTED(在 COMMIT 之後)或 ROLLED BACK(在 ROLLBACK 之後)。

  • TRX_ID

    未使用。

  • GTID

    GTID 欄位包含 gtid_next 的值,可以是 ANONYMOUSAUTOMATIC,或是使用 UUID:NUMBER 格式的 GTID。對於使用 gtid_next=AUTOMATIC 的交易(也就是所有正常的用戶端交易),當交易提交且指派實際的 GTID 時,GTID 欄位會變更。如果 gtid_modeONON_PERMISSIVE,則 GTID 欄位會變更為交易的 GTID。如果 gtid_modeOFFOFF_PERMISSIVE,則 GTID 欄位會變更為 ANONYMOUS

  • XID_FORMAT_IDXID_GTRIDXID_BQUAL

    XA 交易識別碼的元素。它們的格式如第 15.3.8.1 節「XA 交易 SQL 陳述式」中所述。

  • 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 狀態。若要明確識別仍處於 PREPARED 狀態且需要復原的 XA 交易,請使用 XA RECOVER 陳述式,而不是效能結構描述交易表格。

  • SOURCE

    包含產生事件的檢測程式碼的來源檔案名稱,以及檔案中發生檢測的行號。這可讓您檢查來源以判斷確切涉及的程式碼。

  • TIMER_STARTTIMER_ENDTIMER_WAIT

    事件的計時資訊。這些值的單位是皮秒(一秒的兆分之一)。TIMER_STARTTIMER_END 值表示事件計時開始和結束的時間。TIMER_WAIT 是事件經過的時間(持續時間)。

    如果事件尚未完成,則 TIMER_END 是目前的計時器值,而 TIMER_WAIT 是目前經過的時間 (TIMER_ENDTIMER_START)。

    如果事件是從具有 TIMED = NO 的工具產生,則不會收集計時資訊,且 TIMER_STARTTIMER_ENDTIMER_WAIT 全都為 NULL

    有關以皮秒作為事件時間的單位以及影響時間值的因素的討論,請參閱第 29.4.1 節「效能結構描述事件計時」

  • ACCESS_MODE

    交易的存取模式。值為 READ WRITEREAD ONLY

  • ISOLATION_LEVEL

    交易的隔離層級。值為 REPEATABLE READREAD COMMITTEDREAD UNCOMMITTEDSERIALIZABLE

  • AUTOCOMMIT

    交易開始時是否啟用自動提交模式。

  • NUMBER_OF_SAVEPOINTSNUMBER_OF_ROLLBACK_TO_SAVEPOINTNUMBER_OF_RELEASE_SAVEPOINT

    在交易期間發出的 SAVEPOINTROLLBACK TO SAVEPOINTRELEASE SAVEPOINT 陳述式數量。

  • OBJECT_INSTANCE_BEGIN

    未使用。

  • NESTING_EVENT_ID

    此事件巢狀所在的事件的 EVENT_ID 值。

  • NESTING_EVENT_TYPE

    巢狀事件類型。值為 TRANSACTIONSTATEMENTSTAGEWAIT。(TRANSACTION 不會出現,因為交易不能巢狀。)

events_transactions_current 表格具有以下索引:

  • 主鍵位於 (THREAD_ID, EVENT_ID)

允許對 events_transactions_current 表格使用 TRUNCATE TABLE。它會移除資料列。