events_statements_current 表格包含目前的陳述式事件。此表格每個執行緒儲存一列,顯示該執行緒最近監控的陳述式事件的目前狀態,因此沒有系統變數可設定表格大小。
在包含陳述式事件列的表格中,events_statements_current 是最基本的。其他包含陳述式事件列的表格在邏輯上是從目前的事件衍生而來。例如,events_statements_history 和 events_statements_history_long 表格分別是最近結束的陳述式事件的集合,每個執行緒和全域跨所有執行緒的最大列數。
如需關於三個 events_statements_ 事件表格之間關係的詳細資訊,請參閱 第 29.9 節「Performance Schema 用於目前和歷史事件的表格」。xxx
如需關於是否收集陳述式事件的設定資訊,請參閱 第 29.12.6 節「Performance Schema 陳述式事件表格」。
events_statements_current 表格具有下列欄:
THREAD_ID、EVENT_ID與事件相關聯的執行緒,以及事件開始時的執行緒當前事件編號。
THREAD_ID和EVENT_ID值組合在一起可唯一識別該列。沒有任何兩列具有相同的值對。END_EVENT_ID此欄在事件開始時設定為
NULL,並在事件結束時更新為執行緒的當前事件編號。EVENT_NAME收集事件的儀器名稱。這是
setup_instruments表格中的NAME值。儀器名稱可能有多個部分,並形成一個階層,如第 29.6 節「效能結構描述儀器命名慣例」中所述。對於 SQL 語句,
EVENT_NAME值最初是statement/com/Query,直到語句被剖析,然後更改為更合適的值,如第 29.12.6 節「效能結構描述語句事件表」中所述。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 節「效能結構描述事件計時」。
LOCK_TIME等待表格鎖定的時間。此值以微秒計算,但會正規化為皮秒,以便更容易與其他效能結構描述計時器比較。
SQL_TEXTSQL 語句的文字。對於與 SQL 語句無關的命令,值為
NULL。預設情況下,可供語句顯示的最大空間為 1024 個位元組。若要變更此值,請在伺服器啟動時設定
performance_schema_max_sql_text_length系統變數。(變更此值也會影響其他效能結構描述表格中的欄。請參閱第 29.10 節「效能結構描述語句摘要和取樣」。)DIGEST語句摘要 SHA-256 值,為 64 個十六進位字元的字串,如果
statements_digest取用者為no,則為NULL。如需有關語句摘要的詳細資訊,請參閱第 29.10 節「效能結構描述語句摘要和取樣」。DIGEST_TEXT正規化的語句摘要文字,如果
statements_digest取用者為no,則為NULL。如需有關語句摘要的詳細資訊,請參閱第 29.10 節「效能結構描述語句摘要和取樣」。performance_schema_max_digest_length系統變數決定每個工作階段可用的摘要值儲存最大位元組數。但是,語句摘要的顯示長度可能會超過可用緩衝區大小,因為語句元素(例如關鍵字和常值)會編碼在摘要緩衝區中。因此,從語句事件表的DIGEST_TEXT欄中選取的值可能會超出performance_schema_max_digest_length值。CURRENT_SCHEMA語句的預設資料庫,如果沒有,則為
NULL。OBJECT_SCHEMA、OBJECT_NAME、OBJECT_TYPE對於巢狀語句(儲存的程式),這些欄包含關於父語句的資訊。否則,它們為
NULL。OBJECT_INSTANCE_BEGIN此欄識別語句。此值是記憶體中物件的位址。
MYSQL_ERRNO語句錯誤編號,來自語句診斷區域。
RETURNED_SQLSTATE語句 SQLSTATE 值,來自語句診斷區域。
MESSAGE_TEXT語句錯誤訊息,來自語句診斷區域。
ERRORS語句是否發生錯誤。如果 SQLSTATE 值以
00(完成)或01(警告)開頭,則值為 0。如果 SQLSTATE 值是其他任何值,則值為 1。WARNINGS警告的數量,來自語句診斷區域。
ROWS_AFFECTED受語句影響的列數。如需有關「受影響的」意義的描述,請參閱 mysql_affected_rows()。
ROWS_SENT語句傳回的列數。
ROWS_EXAMINED伺服器層檢查的列數(不計算儲存引擎內部的任何處理)。
CREATED_TMP_DISK_TABLES類似於
Created_tmp_disk_tables狀態變數,但特定於語句。CREATED_TMP_TABLES類似於
Created_tmp_tables狀態變數,但特定於語句。SELECT_FULL_JOIN類似於
Select_full_join狀態變數,但特定於語句。SELECT_FULL_RANGE_JOIN類似於
Select_full_range_join狀態變數,但特定於語句。SELECT_RANGE類似於
Select_range狀態變數,但特定於語句。SELECT_RANGE_CHECK類似於
Select_range_check狀態變數,但特定於語句。SELECT_SCAN類似於
Select_scan狀態變數,但特定於語句。SORT_MERGE_PASSES類似於
Sort_merge_passes狀態變數,但特定於語句。SORT_RANGE類似於
Sort_range狀態變數,但特定於語句。SORT_ROWS類似於
Sort_rows狀態變數,但特定於語句。SORT_SCAN類似於
Sort_scan狀態變數,但特定於語句。NO_INDEX_USED如果語句執行表格掃描而未使用索引,則為 1;否則為 0。
NO_GOOD_INDEX_USED如果伺服器找不到適用於語句的良好索引,則為 1;否則為 0。如需其他資訊,請參閱 第 10.8.2 節「EXPLAIN 輸出格式」中
EXPLAIN輸出的Extra欄中Range checked for each record值的描述。NESTING_EVENT_ID、NESTING_EVENT_TYPE、NESTING_EVENT_LEVEL這三個欄會與其他欄一起使用,以提供頂層(非巢狀)語句和巢狀語句(在儲存的程式中執行)的資訊,如下所示。
對於頂層語句
OBJECT_TYPE = NULL OBJECT_SCHEMA = NULL OBJECT_NAME = NULL NESTING_EVENT_ID = the parent transaction EVENT_ID NESTING_EVENT_TYPE = 'TRANSACTION' NESTING_LEVEL = 0對於巢狀語句
OBJECT_TYPE = the parent statement object type OBJECT_SCHEMA = the parent statement object schema OBJECT_NAME = the parent statement object name NESTING_EVENT_ID = the parent statement EVENT_ID NESTING_EVENT_TYPE = 'STATEMENT' NESTING_LEVEL = the parent statement NESTING_LEVEL plus oneSTATEMENT_ID伺服器在 SQL 層級維護的查詢 ID。由於這些 ID 是使用以原子方式遞增的全域計數器產生的,因此該值對於伺服器執行個體是唯一的。
CPU_TIME目前執行緒在 CPU 上花費的時間,以皮秒表示。
MAX_CONTROLLED_MEMORY報告語句在執行期間使用的最大受控記憶體量。
MAX_TOTAL_MEMORY報告語句在執行期間使用的最大記憶體量。
EXECUTION_ENGINE查詢執行引擎。該值是
PRIMARY或SECONDARY。適用於 HeatWave Service 和 HeatWave,其中PRIMARY引擎是InnoDB,而SECONDARY引擎是 HeatWave (RAPID)。對於 MySQL Community Edition Server、MySQL Enterprise Edition Server (內部部署) 和不含 HeatWave 的 HeatWave Service,該值始終為PRIMARY。
events_statements_current 表格具有這些索引
在 (
THREAD_ID,EVENT_ID) 上使用主索引鍵
允許對 events_statements_current 表格使用 TRUNCATE TABLE。它會移除資料列。