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