10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 本手册下载 从本手册中摘录

27.12.5性能架构阶段事件表

性能架构仪器阶段,它们是在语句执行过程中的步骤,例如解析语句,打开表或执行afilesort.手术。阶段对应于显示的线程状态显示PROCESSLIST或者那是可见的INFORMATION_SCHEMA。PROCESSLIST桌子。状态值更改时阶段开始和结束。

在事件层次结构中,等待事件嵌套在阶段事件中,嵌套在语句事件中,在事务事件中嵌套。

这些表格存储阶段事件:

以下部分描述了阶段事件表。还有一些摘要表可以聚合有关阶段事件的信息;看第27.12.20.2节,“阶段汇总表”

有关三个阶段事件表之间关系的更多信息,请参见第27.9节“当前和历史事件的绩效模式表”

配置阶段事件集合

控制是否收集舞台活动,设置相关仪器和消费者的状态:

  • setup_instruments.表包含具有开头的名称的仪器阶段.使用这些工具来启用或禁用单个阶段事件类的集合。

  • setup_consumers表包含具有与当前和历史阶段事件表名称对应的名称的消费者值。使用这些消费者过滤阶段事件的集合。

除了提供声明进展信息的仪器之外,默认情况下禁用舞台仪器。例如:

mysql> SELECT NAME, ENABLED, TIMED FROM performance_schema。setup_instruments WHERE NAME RLIKE 'stage/sql/[a-c]';+----------------------------------------------------+---------+-------+ | 名字| |定时启用  | +----------------------------------------------------+---------+-------+ | 创建后阶段/ sql / |没有| | |阶段/ sql /分配本地表|没有| | |阶段/ sql /更改表|没有| | |阶段/ sql /提交alter table存储引擎|NO | NO | | stage/sql/Changing master | NO | NO | | stage/sql/Checking master version | NO | NO | | stage/sql/checking permissions | NO | NO | | stage/sql/cleaning up | NO | NO | | stage/sql/closing tables | NO | NO | | stage/sql/Connecting to master | NO | NO | | stage/sql/converting HEAP to MyISAM | NO | NO | | stage/sql/Copying to group table | NO | NO | | stage/sql/Copying to tmp table | NO | NO | | stage/sql/copy to tmp table | NO | NO | | stage/sql/Creating sort index | NO | NO | | stage/sql/creating table | NO | NO | | stage/sql/Creating tmp table | NO | NO | +----------------------------------------------------+---------+-------+

截至默认情况下,提供了提供语句进度信息的阶段事件仪器:

mysql>选择名称,启用,从performity_schema.setup_instrument定时,其中启用='是'和“阶段/%”;+ ----------------------------------------------- + --------- + ------- + |名称|启用|定时|+ ----------------------------------------------- + --------- + ------- + |阶段/ SQL / COPY到TMP表|是的是的| stage/sql/Applying batch of row changes (write) | YES | YES | | stage/sql/Applying batch of row changes (update) | YES | YES | | stage/sql/Applying batch of row changes (delete) | YES | YES | | stage/innodb/alter table (end) | YES | YES | | stage/innodb/alter table (flush) | YES | YES | | stage/innodb/alter table (insert) | YES | YES | | stage/innodb/alter table (log apply index) | YES | YES | | stage/innodb/alter table (log apply table) | YES | YES | | stage/innodb/alter table (merge sort) | YES | YES | | stage/innodb/alter table (read PK and internal sort) | YES | YES | | stage/innodb/buffer pool load | YES | YES | | stage/innodb/clone (file copy) | YES | YES | | stage/innodb/clone (redo copy) | YES | YES | | stage/innodb/clone (page copy) | YES | YES | +------------------------------------------------------+---------+-------+

stage consumers默认是禁用的:

mysql> SELECT * FROM performance_schema。setup_consumersWHERE NAME LIKE 'events_stages%'; +----------------------------+---------+ | NAME | ENABLED | +----------------------------+---------+ | events_stages_current | NO | | events_stages_history | NO | | events_stages_history_long | NO | +----------------------------+---------+

在服务器启动时控制阶段事件集合,请使用您的行我.CNF.文件:

  • 使能够:

    [mysqld] performance-schema-instrument='stage/%=ON' [mysqld] performance-schema-consumer-events-stages-current=ON
  • 禁用:

    [MySQLD] Performance-Schema-Instrument ='Stage /%= OFF'Performance-Schema-Fameer-Events-Stages-Current = OFF Performance-Schema-Fameer-Events-Stages-Hardent = OFF Performance-Schema-Fame-Events-阶段 - 历史 -  Long = OFF

在运行时控制阶段事件集合,更新setup_instruments.setup_consumers表:

  • 使能够:

    更新performance_schema.setup_instruments集合启用='是',定时='是',其中名称像'阶段/%';更新performance_schema.setup_consumers设置为启用='是',其中名称为“events_stages%”;
  • 禁用:

    更新performance_schema.setup_instruments集启用='否',定时='否',其中名称(舞台/%')更新performance_schema.setup_consumers设置为启用='否',其中名称像'events_stages%';

要仅收集特定阶段事件,仅启用相应的舞台仪器。仅针对特定阶段事件表收集阶段事件,启用舞台仪器,而且只有对应于所需表的阶段消费者。

有关配置事件集合的其他信息,请参阅第27.3节,“性能模式启动配置”, 和第27.4节,“性能模式运行时配置”

阶段事件进展信息

性能架构阶段事件表包含两个列,其中一起提供每行的舞台进度指示符:

  • WORK_COMPLETED:为舞台完成的工作单位数量

  • Work_ESTIMATED.:舞台预期的工作单位数量

每列都是空值如果没有为仪器提供进度信息。解释信息,如果可用,完全取决于仪器实现。性能模式表提供了一个存储进度数据的容器,但没有关于度量标准本身的语义的假设:

  • 一个工作单位是一个整数度量,它在执行期间随时间增加,例如处理的字节数,行,文件或表格数。定义工作单位对于特定的仪器,留给提供数据的仪器代码。

  • WORK_COMPLETED值可以一次增加一个或多个单位,具体取决于仪器代码。

  • Work_ESTIMATED.值可以在此阶段更改,这取决于安装的代码。

阶段事件进度指示符的仪器可以实现以下任何行为:

  • 没有进展仪表

    这是最典型的情况,其中没有提供进度数据。的WORK_COMPLETEDWork_ESTIMATED.列都是空值

  • 无限的进展仪表

    只有WORK_COMPLETED列是有意义的。没有提供数据Work_ESTIMATED.列,显示0。

    通过查询events_stages_current.监控会话表,监控应用程序可以报告到目前为止执行了多少工作,但无法报告舞台是否近完成。目前,没有像这样的阶段。

  • 有界进展仪表

    WORK_COMPLETEDWork_ESTIMATED.列既有意义。

    这种类型的进度指示器适用于具有已定义的完成标准的操作,例如后面描述的表复制工具。通过查询events_stages_current.监控会话表,监控应用程序可以报告到目前为止执行了多少工作,并可通过计算阶段的整体完成百分比,通过计算WORK_COMPLETED/Work_ESTIMATED.比率。

阶段/ SQL / COPY到TMP表仪器说明了指标如何工作的过程。在执行期间ALTER TABLE声明,这是阶段/ SQL / COPY到TMP表使用Stage,这个Stage可能执行很长时间,这取决于要复制的数据的大小。

表 - 复制任务具有定义的终止(所有行复制),以及阶段/ SQL / COPY到TMP表stage用于提供有限的进度信息:使用的工作单元是复制的行数,WORK_COMPLETEDWork_ESTIMATED.既有意义,其比例表明任务百分比完整。

要启用仪器和相关的消费者,请执行以下声明:

更新performency_schema.setup_instruments集启用='是'其中name ='stage / sql / copy到tmp表';更新performance_schema.setup_consumers设置为启用='是',其中名称为“events_stages_%”;

看看正在进行的进度ALTER TABLE声明,从中选择events_stages_current.桌子。