25.12.15.3 语句摘要 table

性能架构维护用于收集当前和最近的语句事件的 table,并将该信息汇总到摘要 table 中。 第 25.12.6 节“性能架构语句事件 table”描述了语句摘要所基于的事件。请参阅该讨论,以获取有关语句事件的内容,当前和历史语句事件 table 以及如何控制语句事件收集的信息,默认情况下已将其部分禁用。

示例语句事件摘要信息:

mysql> SELECT *
       FROM performance_schema.events_statements_summary_global_by_event_name\G
*************************** 1. row ***************************
                 EVENT_NAME: statement/sql/select
                 COUNT_STAR: 25
             SUM_TIMER_WAIT: 1535983999000
             MIN_TIMER_WAIT: 209823000
             AVG_TIMER_WAIT: 61439359000
             MAX_TIMER_WAIT: 1363397650000
              SUM_LOCK_TIME: 20186000000
                 SUM_ERRORS: 0
               SUM_WARNINGS: 0
          SUM_ROWS_AFFECTED: 0
              SUM_ROWS_SENT: 388
          SUM_ROWS_EXAMINED: 370
SUM_CREATED_TMP_DISK_TABLES: 0
     SUM_CREATED_TMP_TABLES: 0
       SUM_SELECT_FULL_JOIN: 0
 SUM_SELECT_FULL_RANGE_JOIN: 0
           SUM_SELECT_RANGE: 0
     SUM_SELECT_RANGE_CHECK: 0
            SUM_SELECT_SCAN: 6
      SUM_SORT_MERGE_PASSES: 0
             SUM_SORT_RANGE: 0
              SUM_SORT_ROWS: 0
              SUM_SORT_SCAN: 0
          SUM_NO_INDEX_USED: 6
     SUM_NO_GOOD_INDEX_USED: 0
...

每个语句摘要 table 都有一个或多个分组列,以指示该 table 如何聚合事件。事件名称是指setup_instrumentstable 中事件工具的名称:

服务器启动时将自动调整 table 中的最大行数。要显式设置此最大值,请在服务器启动时设置performance_schema_digests_size系统变量。

每个语句摘要 table 都有包含汇总值的这些摘要列(有特殊说明的除外):

这些列类似于 await 事件摘要 table(请参见第 25.12.15.1 节,“await 事件摘要 table”)中具有相同名称的列,除了语句摘要 table 聚合来自events_statements_current而不是events_waits_current的事件。

prepared_statements_instancestable 没有这些列。

events_statements_currenttable 中相应* xxx *列的汇总。例如,语句摘要 table 中的SUM_LOCK_TIMESUM_ERRORS列是events_statements_currenttable 中LOCK_TIMEERRORS列的集合。

events_statements_summary_by_digesttable 具有以下其他摘要列:

时间戳指示何时首次看到和最近一次看到具有给定摘要值的语句。

events_statements_summary_by_programtable 具有以下其他摘要列:

有关在存储程序执行期间调用的嵌套语句的统计信息。

prepared_statements_instancestable 具有以下其他摘要列:

用于执行准备好的语句的汇总统计信息。

语句摘要 table 允许TRUNCATE TABLE。它具有以下效果:

此外,由帐户,主机,用户或线程聚合的每个语句摘要 table 都将通过其所依赖的连接 table 的截断或events_statements_summary_global_by_event_name的截断而隐式地截断。有关详细信息,请参见第 25.12.8 节“性能架构连接 table”

语句摘要聚合规则

如果启用了statements_digest使用者,则在语句完成时将汇总到events_statements_summary_by_digest中。聚合基于为该语句计算的DIGEST值。

之所以保留DIGEST = NULL的行,是因为由于内存限制,“性能模式”table 的大小最大。 DIGEST = NULL行允许使用通用的“其他”存储区对摘要行已满的摘要进行计数,即使摘要 table 已满。此行可帮助您估计摘要摘要是否具有代 table 性:

存储程序检测行为

对于在setup_objectstable 中启用了检测功能的存储程序类型,events_statements_summary_by_program维护存储程序的统计信息,如下所示:

另请参见第 25.4.3 节“事件预过滤”

首页