查看慢SQL
操作场景
GaussDB数据库实例存在慢SQL时,用户可以通过SQL限流功能控制异常SQL的访问量或者并发量,保障服务的可用性,通过SQL计划绑定或解绑执行计划操作,也可以通过查询表定义功能识别出SQL文本中的表名信息,并根据表名、Schema名以及库名进行表定义的查询。
约束限制
- 因数据库内核未对慢SQL做持久化处理,在数据库实例发生重启、升级、规格变更、停止节点、启动节点、主备倒换、形态变更操作后,慢SQL视图将会被清空。
- GaussDB实例的操作系统需要为HCEOS。
- 仅集中式实例支持SQl计划。
- 数据库引擎版本大于等于V2.0-3.208.0,内核版本大于等于503.1.0.SPC1200的实例支持查询表定义。版本号查询方法请参见查看云数据库GaussDB数据库和内核引擎版本。
- 慢SQL查询的最大时间跨度为一天。
- 不支持对系统级别用户进行SQL限流。
查看慢SQL
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
- 单击“诊断优化 > SQL视图”。
- 在“慢SQL”页签,用户可按需选择指定节点,时间范围,组合过滤SQL文本、归一化SQL ID以及其他扩展字段,单击查询按钮,获取慢SQL列表。
- 用户可自行选择时间区间,最大时间跨度为一天,可按照节点维度展示数据。
- 过滤系统用户:开启后,将会跳过系统用户所执行的SQL记录。默认开启。
- 用户可以选择"OR"或者"AND"查询,筛选框中可以填入需要组合过滤的多个SQL文本(不超过5个)。
- 用户可以自行设置慢SQL阈值,只能设置阈值大于等于1秒,实时查询实例上大于等于该阈值的SQL执行信息。慢SQL阈值受参数log_min_duration_statement参数控制,默认查询3s以上的慢SQL,如果要查询3s以下的慢SQL需要到参数管理模块调整参数值。如何修改参数请参考修改实例参数。
表1 慢SQL部分参数说明 参数名称
参数解释
归一化SQL ID
慢SQL的归一化SQL ID。
节点名称/ID
SQL执行的节点名称/ID。
用户名
执行该SQL的用户。
SQL文本
慢SQL的归一化模板语句。
SQL计划
SQL执行计划。
慢SQL次数
限定时间跨度内该慢SQL总执行次数。
平均执行时间(s)
限定时间跨度内该慢SQL模板的平均执行时间,单位:秒。
平均CPU耗时(s)
CPU时间,单位:秒。
平均IO耗时(s)
IO上的时间花费,单位:秒。
平均返回行数
SELECT返回的结果集行数。
平均扫描行数
执行SQL扫描的行数。
Buffer命中率
缓存命中率。
- 单击操作列中的“查看SQL”按钮,可查看采集的SQL和解析后的原始SQL。
开启track_stmt_parameter参数后,会把SQL文本中的变量替换成真实值,展示原始的SQL。对于track_stmt_parameter参数关闭时采集的SQL文本,无法获取到SQL参数变量的值,展示的内容为空。如何修改参数请参考修改实例参数。
- 单击操作列的“SQL限流”可以对选中慢SQL的归一化SQL ID进行限流。如何创建SQL限流任务请参见配置SQL限流。
SQL计划
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
- 单击“诊断优化 > SQL视图”。
- 在“慢SQL”页签,获取慢SQL列表。
- 在“操作”列单击“更多 > SQL计划”,显示“执行计划绑定详情”页面。
表2 执行计划绑定详情列表字段说明 列表名称
说明
执行计划概览
SQL执行计划。
唯一SQL ID
数据库中SQL的唯一标识。
Plan ID
当前SQL使用的计划的唯一标识。
执行代价
计划的总代价。
绑定状态
计划的状态。允许绑定中的计划解绑,未绑定的计划绑定。
- 绑定中
- 未绑定
- 在弹出框中,单击执行计划绑定详情列表中“绑定状态”列的
,选择绑定状态,单击“确定”后,完成绑定/解绑慢SQL执行计划。
创建SQL PATCH
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
- 单击“诊断优化 > SQL视图”。
- 在“慢SQL”页签,获取慢SQL列表。
- 在“操作”列单击“更多 > SQL PATCH”,显示“SQL PATCH详情”页面。
- 如果没创建SQL PATCH,输入PATCH名称、PATCH内容,单击“创建”,则可创建SQL PATCH。
图1 SQL PATCH
- 如果已创建SQL PATCH,则显示SQL PATCH信息。
图2 SQL PATCH详情
- 状态:单击
,可开启或关闭SQL PATCH。关闭SQL PATCH,状态显示未生效,开启SQL PATCH,状态显示生效中。
- 单击“删除”,则可删除SQL PATCH。
- 状态:单击
- 如果没创建SQL PATCH,输入PATCH名称、PATCH内容,单击“创建”,则可创建SQL PATCH。
查询表定义
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
- 单击“诊断优化 > SQL视图”。
- 在“慢SQL”页签,选择“指定节点”以及“时间范围”,单击“查询”获取慢SQL列表。
- 单击“操作”列的“更多 > 表定义”。在“表定义”页面,查看“识别到的表”。
如未识别到表,请单击“添加识别到的表”填写表名后进行表定义查询。如识别结果有误,请单击“编辑”进行修改并保存后再进行表定义查询。
- 单击指定表名前的
进行表定义的查询。
图3 表定义 - 单击表定义中的SQL语句查看具体的表定义信息。
图4 表定义具体信息