The events_statements_current
table contains current statement events. The table stores one
row per thread showing the current status of the thread's most
recent monitored statement event, so there is no system
variable for configuring the table size.
Of the tables that contain statement event rows,
events_statements_current is the
most fundamental. Other tables that contain statement event
rows are logically derived from the current events. For
example, the
events_statements_history and
events_statements_history_long
tables are collections of the most recent statement events
that have ended, up to a maximum number of rows per thread and
globally across all threads, respectively.
For more information about the relationship between the three
events_statements_
event tables, see
Section 29.9, “Performance Schema Tables for Current and Historical Events”.
xxx
For information about configuring whether to collect statement events, see Section 29.12.6, “Performance Schema Statement Event Tables”.
The events_statements_current
table has these columns:
THREAD_ID,EVENT_IDThe thread associated with the event and the thread current event number when the event starts. The
THREAD_IDandEVENT_IDvalues taken together uniquely identify the row. No two rows have the same pair of values.END_EVENT_IDThis column is set to
NULLwhen the event starts and updated to the thread current event number when the event ends.EVENT_NAMEThe name of the instrument from which the event was collected. This is a
NAMEvalue from thesetup_instrumentstable. Instrument names may have multiple parts and form a hierarchy, as discussed in Section 29.6, “Performance Schema Instrument Naming Conventions”.For SQL statements, the
EVENT_NAMEvalue initially isstatement/com/Queryuntil the statement is parsed, then changes to a more appropriate value, as described in Section 29.12.6, “Performance Schema Statement Event Tables”.SOURCEThe name of the source file containing the instrumented code that produced the event and the line number in the file at which the instrumentation occurs. This enables you to check the source to determine exactly what code is involved.
TIMER_START,TIMER_END,TIMER_WAITTiming information for the event. The unit for these values is picoseconds (trillionths of a second). The
TIMER_STARTandTIMER_ENDvalues indicate when event timing started and ended.TIMER_WAITis the event elapsed time (duration).If an event has not finished,
TIMER_ENDis the current timer value andTIMER_WAITis the time elapsed so far (TIMER_END−TIMER_START).If an event is produced from an instrument that has
TIMED = NO, timing information is not collected, andTIMER_START,TIMER_END, andTIMER_WAITare allNULL.For discussion of picoseconds as the unit for event times and factors that affect time values, see Section 29.4.1, “Performance Schema Event Timing”.
LOCK_TIMEThe time spent waiting for table locks. This value is computed in microseconds but normalized to picoseconds for easier comparison with other Performance Schema timers.
SQL_TEXTThe text of the SQL statement. For a command not associated with an SQL statement, the value is
NULL.The maximum space available for statement display is 1024 bytes by default. To change this value, set the
performance_schema_max_sql_text_lengthsystem variable at server startup. (Changing this value affects columns in other Performance Schema tables as well. See Section 29.10, “Performance Schema Statement Digests and Sampling”.)DIGESTThe statement digest SHA-256 value as a string of 64 hexadecimal characters, or
NULLif thestatements_digestconsumer isno. For more information about statement digesting, see Section 29.10, “Performance Schema Statement Digests and Sampling”.DIGEST_TEXTThe normalized statement digest text, or
NULLif thestatements_digestconsumer isno. For more information about statement digesting, see Section 29.10, “Performance Schema Statement Digests and Sampling”.The
performance_schema_max_digest_lengthsystem variable determines the maximum number of bytes available per session for digest value storage. However, the display length of statement digests may be longer than the available buffer size due to encoding of statement elements such as keywords and literal values in digest buffer. Consequently, values selected from theDIGEST_TEXTcolumn of statement event tables may appear to exceed theperformance_schema_max_digest_lengthvalue.CURRENT_SCHEMAThe default database for the statement,
NULLif there is none.OBJECT_SCHEMA,OBJECT_NAME,OBJECT_TYPEFor nested statements (stored programs), these columns contain information about the parent statement. Otherwise they are
NULL.OBJECT_INSTANCE_BEGINThis column identifies the statement. The value is the address of an object in memory.
MYSQL_ERRNOThe statement error number, from the statement diagnostics area.
RETURNED_SQLSTATEThe statement SQLSTATE value, from the statement diagnostics area.
MESSAGE_TEXTThe statement error message, from the statement diagnostics area.
ERRORSWhether an error occurred for the statement. The value is 0 if the SQLSTATE value begins with
00(completion) or01(warning). The value is 1 is the SQLSTATE value is anything else.WARNINGSThe number of warnings, from the statement diagnostics area.
ROWS_AFFECTEDThe number of rows affected by the statement. For a description of the meaning of “affected,” see mysql_affected_rows().
ROWS_SENTThe number of rows returned by the statement.
ROWS_EXAMINEDThe number of rows examined by the server layer (not counting any processing internal to storage engines).
CREATED_TMP_DISK_TABLESLike the
Created_tmp_disk_tablesstatus variable, but specific to the statement.CREATED_TMP_TABLESLike the
Created_tmp_tablesstatus variable, but specific to the statement.SELECT_FULL_JOINLike the
Select_full_joinstatus variable, but specific to the statement.SELECT_FULL_RANGE_JOINLike the
Select_full_range_joinstatus variable, but specific to the statement.SELECT_RANGELike the
Select_rangestatus variable, but specific to the statement.SELECT_RANGE_CHECKLike the
Select_range_checkstatus variable, but specific to the statement.SELECT_SCANLike the
Select_scanstatus variable, but specific to the statement.SORT_MERGE_PASSESLike the
Sort_merge_passesstatus variable, but specific to the statement.SORT_RANGELike the
Sort_rangestatus variable, but specific to the statement.SORT_ROWSLike the
Sort_rowsstatus variable, but specific to the statement.SORT_SCANLike the
Sort_scanstatus variable, but specific to the statement.NO_INDEX_USED1 if the statement performed a table scan without using an index, 0 otherwise.
NO_GOOD_INDEX_USED1 if the server found no good index to use for the statement, 0 otherwise. For additional information, see the description of the
Extracolumn fromEXPLAINoutput for theRange checked for each recordvalue in Section 10.8.2, “EXPLAIN Output Format”.NESTING_EVENT_ID,NESTING_EVENT_TYPE,NESTING_EVENT_LEVELThese three columns are used with other columns to provide information as follows for top-level (unnested) statements and nested statements (executed within a stored program).
For top level statements:
OBJECT_TYPE = NULL OBJECT_SCHEMA = NULL OBJECT_NAME = NULL NESTING_EVENT_ID = the parent transaction EVENT_ID NESTING_EVENT_TYPE = 'TRANSACTION' NESTING_LEVEL = 0For nested statements:
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_IDThe query ID maintained by the server at the SQL level. The value is unique for the server instance because these IDs are generated using a global counter that is incremented atomically.
CPU_TIMEThe time spent on CPU for the current thread, expressed in picoseconds.
MAX_CONTROLLED_MEMORYReports the maximum amount of controlled memory used by a statement during execution.
MAX_TOTAL_MEMORYReports the maximum amount of memory used by a statement during execution.
EXECUTION_ENGINEThe query execution engine. The value is either
PRIMARYorSECONDARY. For use with HeatWave Service and HeatWave, where thePRIMARYengine isInnoDBand theSECONDARYengine is HeatWave (RAPID). For MySQL Community Edition Server, MySQL Enterprise Edition Server (on-premise), and HeatWave Service without HeatWave, the value is alwaysPRIMARY.
The events_statements_current
table has these indexes:
Primary key on (
THREAD_ID,EVENT_ID)
TRUNCATE TABLE is permitted for
the events_statements_current
table. It removes the rows.