The events_waits_current Table
The events_waits_current table contains current wait events, one row per thread showing the current status of the thread's most recent monitored wait event.
The events-waits-current table can be truncated with TRUNCATE TABLE.
Of the tables that contain wait event rows, events_waits_current is the most fundamental. Other tables that contain wait event rows are logically derived from the current events. For example, the events_waits_history and events_waits_history_long tables are collections of the most recent wait events, up to a fixed number of rows.
The events_waits_current table has these columns:
THREAD_IDThe thread associated with the event. The
THREAD_IDandEVENT_IDvalues taken together form a primary key that uniquely identifies the row. No two rows will have the same pair of values.EVENT_IDThe thread current event number when the event starts.
END_EVENT_IDThis column is set to
NULLwhen the event starts, and updated to the thread current event number when the event ends. This column was added in MariaDB 5.6.4.EVENT_NAMEThe name of the instrument that produced the event. This is a
setup_instruments.NAMEvalue. Instrument names have multiple parts and form a hierarchy, as discussed in , "Performance Schema Instrument Naming Conventions".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. For example, if a mutex or lock is being blocked, you can check the context in which this occurs.
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_ENDandTIMER_WAITareNULL.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 , "Performance Schema Event Timing".
SPINSFor a mutex, the number of spin rounds. If the value is
NULL, the code does not use spin rounds or spinning is not instrumented.OBJECT_SCHEMA,OBJECT_NAME,OBJECT_TYPE,OBJECT_INSTANCE_BEGINThese columns identify the object "being acted on." What that means depends on the object type.
For a synchronization object (
cond,mutex,rwlock):OBJECT_SCHEMA,OBJECT_NAME, andOBJECT_TYPEareNULL.OBJECT_INSTANCE_BEGINis the address of the synchronization object in memory.
For a file I/O object:
OBJECT_SCHEMAisNULL.OBJECT_NAMEis the file name.OBJECT_TYPEisFILE.OBJECT_INSTANCE_BEGINis an address in memory.
For a socket object:
OBJECT_NAMEis theIP:PORTvalue for the socket.OBJECT_INSTANCE_BEGINis an address in memory.
For a table I/O object:
OBJECT_SCHEMAis the name of the schema that contains the table.OBJECT_NAMEis the table name.OBJECT_TYPEisTABLEfor a persistent base table orTEMPORARY TABLEfor a temporary table.OBJECT_INSTANCE_BEGINis an address in memory.
An
OBJECT_INSTANCE_BEGINvalue itself has no meaning, except that different values indicate different objects.OBJECT_INSTANCE_BEGINcan be used for debugging. For example, it can be used withGROUP BY OBJECT_INSTANCE_BEGINto see whether the load on 1,000 mutexes (that protect, say, 1,000 pages or blocks of data) is spread evenly or just hitting a few bottlenecks. This can help you correlate with other sources of information if you see the same object address in a log file or another debugging or performance tool.INDEX_NAMEThe name of the index used.
PRIMARYindicates the table primary index.NULLmeans that no index was used.NESTING_EVENT_IDThe
EVENT_IDvalue of the event within which this event is nested. Before MariaDB 5.6.3, this column is alwaysNULL.NESTING_EVENT_TYPEThe nesting event type. The value is
statement,stage, orwait. This column was added in MariaDB 5.6.3.OPERATIONThe type of operation performed, such as
lock,read, orwrite.NUMBER_OF_BYTESThe number of bytes read or written by the operation. For table I/O waits,
NUMBER_OF_BYTESisNULL.FLAGSReserved for future use.