创建当前服务器状态的报告以用于诊断目的。
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
性能有很大影响的设置。使用
medium
或full
设置需要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
如果此选项为
ON
,diagnostics()
则允许该过程对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
filename
notee
mysql> tee diag.out;
mysql> CALL sys.diagnostics(120, 30, 'current');
mysql> notee;