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 节,“Performance Schema 仪器命名约定” 中所述,仪器名称可能包含多个部分并形成层次结构。对于 SQL 语句,
EVENT_NAME
值最初为statement/com/Query
,直到语句被解析,然后变更为更合适的值,如 第 29.12.6 节,“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 节“性能模式事件计时”。
LOCK_TIME
等待表锁所花费的时间。此值以微秒计算,但规范化为皮秒,以便于与其他性能模式计时器进行比较。
SQL_TEXT
SQL 语句的文本。对于与 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 one
STATEMENT_ID
服务器在 SQL 级别维护的查询 ID。该值对于服务器实例是唯一的,因为这些 ID 是使用全局计数器生成的,该计数器以原子方式递增。
CPU_TIME
当前线程在 CPU 上花费的时间,以皮秒表示。
MAX_CONTROLLED_MEMORY
报告语句在执行期间使用的受控内存的最大量。
MAX_TOTAL_MEMORY
报告语句在执行期间使用的内存的最大量。
EXECUTION_ENGINE
查询执行引擎。该值为
PRIMARY
或SECONDARY
。对于使用 HeatWave 服务和 HeatWave 的情况,PRIMARY
引擎为InnoDB
,SECONDARY
引擎为 HeatWave (RAPID
)。对于 MySQL 社区版服务器、MySQL 企业版服务器(本地)和不包含 HeatWave 的 HeatWave 服务,该值始终为PRIMARY
。
events_statements_current
表具有以下索引
在 (
THREAD_ID
、EVENT_ID
) 上的主键
TRUNCATE TABLE
允许用于 events_statements_current
表。它会删除行。