Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.6.1 events_statements_当前表

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

在包含语句事件行的所有表中,events_statements_current是最基础的一张。其他包含语句事件行的表是基于当前事件逻辑派生的。例如,events_statements_historyevents_statements_history_long表是最近结束的语句事件的集合,直到每个线程和所有线程中都达到最大行数。

有关三张events_statements_xxx事件表之间关系的更多信息,请参阅第 29.9 节,“Performance Schema 表格用于当前和历史事件”

有关是否收集语句事件的配置信息,请参阅第 29.12.6 节,“Performance Schema 语句事件表”

events_statements_current 表有这些列:

  • THREAD_ID, EVENT_ID

    与事件关联的线程及其当前事件开始时的线程事件编号。THREAD_IDEVENT_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_STARTTIMER_END值表示事件计时开始和结束。TIMER_WAIT是事件所占时间(持续时间)。

    如果事件尚未完成,TIMER_END为当前计时器值,TIMER_WAIT为已过去的时间(TIMER_END - TIMER_START)。

    如果仪表有TIMED = NO,则不会收集计时信息,TIMER_STARTTIMER_ENDTIMER_WAIT均为NULL

    有关皮秒作为事件时间的单位以及影响时间值的因素的讨论,请参阅第 29.4.1 节,“Performance Schema 事件计时”

  • LOCK_TIME

    等待表锁定的时间。这一值以微秒计算,但为了与其他性能架构计时器进行更容易的比较,它被归一化为皮秒。

  • SQL_TEXT

    SQL语句的文本。对于不相关联的SQL语句,值为NULL

    默认情况下,用于语句显示的最大空间为1024字节。要更改此值,请在服务器启动时设置performance_schema_max_sql_text_length系统变量。(更改此值将影响其他性能架构表中的列。见第29.10节,“性能架构语句摘要和抽样”。)

  • DIGEST

    SHA-256语句摘要值的字符串形式,或者NULL如果statements_digest消费者为no。关于语句摘要的更多信息,请参见第29.10节,“性能架构语句摘要和抽样”

  • DIGEST_TEXT

    归一化的语句摘要文本,或者NULL如果statements_digest消费者为no。关于语句摘要的更多信息,请参见第29.10节,“性能架构语句摘要和抽样”

    performance_schema_max_digest_length系统变量确定每个会话可用的最大摘要值存储空间。然而,由于在摘要缓冲区中编码的语句元素,如关键字和文字值,显示的摘要长度可能超过了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

    是否为语句发生了错误。值为0,如果SQLSTATE值以00(完成)或01(警告)开头;否则,值为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。有关更多信息,请参阅Extra列在Range checked for each record值的描述,见Section 10.8.2, “EXPLAIN 输出格式”

  • 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

    查询执行引擎。该值为 PRIMARYSECONDARY。对于 MySQL HeatWave 服务和 HeatWave,PRIMARY 引擎是 InnoDB,而 SECONDARY 引擎是 HeatWave (RAPID)。对于 MySQL 社区版服务器、MySQL 企业版服务器(本地部署)和 MySQL HeatWave 服务(不含 HeatWave),该值始终为 PRIMARY

events_statements_current有这些索引:

  • 主键在 (THREAD_ID, EVENT_ID) 上

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