Documentation Home

27.12.6.1 events_statements_current 表

events_statements_current 表包含当前语句事件。该表为每个线程存储一行,显示线程最近监视的语句事件的当前状态,因此没有用于配置表大小的系统变量。

在包含语句事件行的表中, events_statements_current是最基本的。其他包含语句事件行的表在逻辑上是从当前事件派生的。例如, events_statements_historyevents_statements_history_long 表是最近结束的语句事件的集合,分别达到每个线程的最大行数和所有线程的全局行数。

有关三个事件表 之间关系的更多信息 ,请参阅第 27.9 节,“当前和历史事件的性能模式表”events_statements_xxx

有关配置是否收集语句事件的信息,请参阅 第 27.12.6 节,“性能模式语句事件表”

events_statements_current 表有以下列:

  • THREAD_ID,EVENT_ID

    与事件关联的线程和事件开始时的线程当前事件号。THREAD_IDEVENT_ID值一起唯一标识该行。 没有两行具有相同的一对值。

  • END_EVENT_ID

    此列设置为NULL事件开始时,并在事件结束时更新为线程当前事件编号。

  • EVENT_NAME

    从中收集事件的工具的名称。这是表中的NAMEsetup_instruments。仪器名称可能有多个部分并形成一个层次结构,如 第 27.6 节“性能模式仪器命名约定”中所述。

    对于 SQL 语句,EVENT_NAME 值最初是statement/com/Query 直到语句被解析,然后更改为更合适的值,如 第 27.12.6 节,“性能模式语句事件表”中所述。

  • SOURCE

    源文件的名称,其中包含生成事件的检测代码以及检测发生的文件中的行号。这使您能够检查源代码以准确确定涉及的代码。

  • TIMER_START, TIMER_END, TIMER_WAIT

    事件的时间信息。这些值的单位是皮秒(万亿分之一秒)。和 值指示事件计时何时开始TIMER_STARTTIMER_END结束。TIMER_WAIT是事件经过的时间(持续时间)。

    如果事件尚未完成,TIMER_END 则为当前计时器值并且 TIMER_WAIT是到目前为止经过的时间 ( TIMER_END- TIMER_START)。

    如果事件是由具有 的仪器产生的 TIMED = NO,则不会收集计时信息,并且TIMER_STARTTIMER_ENDTIMER_WAIT都是 NULL

    有关皮秒作为事件时间单位的讨论以及影响时间值的因素,请参阅 第 27.4.1 节,“性能模式事件计时”

  • LOCK_TIME

    等待表锁所花费的时间。该值以微秒为单位计算,但归一化为皮秒,以便与其他 Performance Schema 计时器进行比较。

  • SQL_TEXT

    SQL 语句的文本。对于与 SQL 语句无关的命令,值为 NULL.

    默认情况下,语句显示的最大可用空间为 1024 字节。要更改此值,请 performance_schema_max_sql_text_length 在服务器启动时设置系统变量。(更改此值也会影响其他性能模式表中的列。请参阅 第 27.10 节,“性能模式语句摘要和采样”。)

  • DIGEST

    语句摘要 SHA-256 值作为 64 个十六进制字符的字符串,或者NULL如果 statements_digest消费者是 no. 有关语句摘要的更多信息,请参阅 第 27.10 节,“性能模式语句摘要和采样”

  • DIGEST_TEXT

    规范化的语句摘要文本,或者 NULL如果 statements_digest消费者是 no. 有关语句摘要的更多信息,请参阅 第 27.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 (completion) 或01(warning) 开头,则值为 0。值为 1 是 SQLSTATE 值是任何其他值。

  • 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。有关其他信息,请参阅第 8.8.2 节“EXPLAIN 输出格式”中值的 输出 Extra列的说明。 EXPLAINRange 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 是使用自动递增的全局计数器生成的。此列是在 MySQL 8.0.14 中添加的。

  • CPU_TIME

    当前线程在 CPU 上花费的时间,以皮秒表示。此列是在 MySQL 8.0.28 中添加的。

  • MAX_CONTROLLED_MEMORY

    报告执行期间语句使用的最大受控内存量。

    此列是在 MySQL 8.0.31 中添加的。

  • MAX_TOTAL_MEMORY

    报告执行期间语句使用的最大内存量。

    此列是在 MySQL 8.0.31 中添加的。

  • EXECUTION_ENGINE

    查询执行引擎。值为 PRIMARYSECONDARY。与 MySQL 数据库服务和 HeatWave 一起使用,其中引擎 PRIMARY为 HeatWave ( )。对于没有 HeatWave 的 MySQL Community Edition Server、MySQL Enterprise Edition Server(内部部署)和 MySQL Database Service,值始终为。此列是在 MySQL 8.0.29 中添加的。 InnoDBSECONDARYRAPIDPRIMARY

events_statements_current 表具有以下索引:

  • THREAD_ID( , EVENT_ID) 上的主键

TRUNCATE TABLE表是允许的events_statements_current 。它删除行。