采集并诊断慢SQL
操作场景
慢SQL诊断用于在数据库当前负载下,分析慢SQL执行时间过长的可能原因,并给出对应的诊断建议。
注意事项
- 只有被DBMind实例纳管的实例可以进行SQL诊断。
- GaussDB实例的数据库引擎版本需要大于等于V2.0-8.0.1,内核版本大于等于505.0.0。
- SQL采集的SQL最小执行时长的默认值,可以通过修改实例参数“log_min_duration_statement”进行配置。实例参数的查看和修改方法请参考修改GaussDB实例参数。
- 集中式版实例只支持查询主DN节点,分布式场景只支持查询CN节点。对在剩余节点上执行的SQL暂不支持采集。
- 主备切换、实例重启后,历史的慢SQL数据丢失。
- 数据源为当前SQL数据、历史SQL数据、模板采集数据时,采集最多1000条SQL。
- 在执行SQL诊断时,如果诊断结果为“INVALID SQL”。表示进行慢SQL分析的用户(dbmind_manager)权限不足,需要参考如下语句为分析用户赋权:
通过“SQL采集”诊断
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。 - 在页面左上角单击
,选择 - 在“实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
- 单击
- 单击“SQL采集”页签,可进行SQL诊断。
图1 SQL采集
![点击放大]()
表1 SQL采集部分参数说明 参数名称
参数说明
数据源
慢SQL诊断仅针对当前SQL数据、历史SQL数据和模板采集数据。
选择“模板采集数据”时,必须开启ASP,否则查询数据为空。开启ASP详细内容请参考ASP报告。
节点选择
在集中式场景下,默认节点是主DN,分布式场景下,提供给用户选择CN节点。
用户名
用户可通过下拉框选择用户名。
须知:系统用户名rdsAdmin、rdsBackup、rdsMetric、rdsRepl不会在下拉框中显示。
数据库模式
当前schema名称,仅数据源是“历史SQL数据”时展示。查询出来的值可能显示为:"$user",public。$user表示与当前会话用户名同名的schema名,如果这样的模式不存在,$user将被忽略。所以默认情况下,用户连接数据库后,如果数据库下存在同名Schema,则对象会添加到同名Schema下,否则对象被添加到Public Schema下。
最小执行时长
- 数据源选择当前SQL数据时,最小执行时长是指当前SQL已执行的时间。
- 数据源选择为历史SQL数据时,最小执行时长是指历史SQL执行的时长,值可通过参数管理页配置log_min_duration_statement参数,默认为3000毫秒。
- 填写完成后,单击“开始采集”。
图2 诊断SQL
![点击放大]()
- 单击SQL列表中的
- 模板计划:SQL可能实施的执行计划。
- 根因:慢SQL根因,可能有多条。
- 建议:对根因的建议。
图3 慢SQL诊断![点击放大]()
根因说明请参见《云数据库 GaussDB 使用指南(for 华为云Stack 8.5.0)》中的“ 特性指南 > DBMind: 数据库自治运维 > DBMind的AI子功能 > Slow Query Diagnosis”章节。
通过“自定义”页签诊断
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。 - 在页面左上角单击
,选择 - 在“实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
- 单击
- 单击“自定义”页签,可进行SQL诊断。
图4 自定义页签
![点击放大]()
表2 自定义部分参数说明 参数名称
参数说明
时序区间(选填)
传入上述时间范围,则会判断该时间范围内系统资源消耗情况,分析其对SQL的影响,否则会以当前资源为准分析对SQL执行的影响。
SQL语句(必填)
- 必须为DML语句, 可以为SELECT/DELETE/UPDATE/INSERT。
- 多条SQL语句以“;”隔开。
- 填写完成后,单击“开始诊断”。
,选择区域和项目。
,选择


,选择区域和项目。
,选择
浙公网安备 33010602011771号