Documentation Home

28.4.4.2 diagnostics() 过程

创建当前服务器状态的报告以用于诊断目的。

sql_log_bin此过程通过操纵系统变量 的会话值在其执行期间禁用二进制日志记录 。这是一个受限操作,因此该过程需要足够的权限来设置受限会话变量。请参阅 第 5.1.9.1 节,“系统变量权限”

收集的数据diagnostics() 包括以下信息:

  • 来自metrics 视图的信息(请参阅第 28.4.3.21 节,“指标视图”

  • 来自其他相关sys 模式视图的信息,例如确定第 95 个百分位查询的 信息

  • 来自 ndbinfo模式的信息,如果 MySQL 服务器是 NDB Cluster 的一部分

  • 复制状态(源和副本)

一些 sys 模式视图被计算为初始(可选)、总体和增量值:

  • 初始视图是diagnostics() 过程开始时视图的内容。此输出与用于增量视图的起始值相同。diagnostics.include_raw 如果配置选项是,则包含初始视图ON

  • 整体视图是diagnostics()程序结束时视图的内容。此输出与用于增量视图的最终值相同。始终包括整体视图。

  • 增量视图是过程执行开始到结束的区别。最小值和最大值分别是端视图的最小值和最大值。它们不一定反映监测期间的最小值和最大值。除 metrics视图外,增量仅在第一个和最后一个输出之间计算。

参数
  • in_max_runtime INT UNSIGNED:以秒为单位的最长数据收集时间。用于 NULL收集默认 60 秒的数据。否则,使用大于 0 的值。

  • in_interval INT UNSIGNED:数据收集之间的休眠时间(以秒为单位)。用于 NULL休眠默认的 30 秒。否则,使用大于 0 的值。

  • in_auto_config ENUM('current', 'medium', 'full'):要使用的性能架构配置。允许的值为:

    • current:使用当前的仪器和用户设置。

    • medium:启用一些仪器和消费者。

    • full:启用所有仪器和消费者。

    笔记

    启用的仪器和消费者越多,对 MySQL 服务器性能的影响就越大。请注意medium设置,尤其是对full性能有很大影响的设置。

    使用mediumfull设置需要 SUPER特权。

    如果选择了 以外的设置current,则当前设置将在过程结束时恢复。

配置选项

diagnostics()可以使用以下配置选项或其相应的用户定义变量修改操作(请参阅 第 28.4.2.1 节,“sys_config 表”):

  • debug,@sys.debug

    如果此选项为ON,则产生调试输出。默认值为OFF

  • diagnostics.allow_i_s_tables, @sys.diagnostics.allow_i_s_tables

    如果此选项为ONdiagnostics()则允许该过程对 INFORMATION_SCHEMA.TABLES 表执行表扫描。如果有很多表,这可能会很昂贵。默认值为OFF

  • diagnostics.include_raw, @sys.diagnostics.include_raw

    如果此选项为ON,则 diagnostics()过程输出包括查询 metrics视图的原始输出。默认值为OFF

  • statement_truncate_len, @sys.statement_truncate_len

    format_statement() 函数 返回的语句的最大长度 。较长的语句被截断为此长度。默认值为 64。

例子

使用当前的 Performance Schema 设置创建一个诊断报告,该报告每 30 秒开始一次迭代并最多运行 120 秒:

mysql> CALL sys.diagnostics(120, 30, 'current');

diagnostics()要在文件运行时 捕获过程的输出 ,请使用mysql客户端和 命令(请参阅 第 4.5.1.2 节,“mysql 客户端命令”): tee filenamenotee

mysql> tee diag.out;
mysql> CALL sys.diagnostics(120, 30, 'current');
mysql> notee;