GaussDB-慢SQL
操作场景
提供慢SQL列表和慢SQL详情信息,帮助开发者回溯执行时间超过阈值的SQL,诊断SQL性能瓶颈。
特性约束
- 目前的SQL跟踪信息,基于正常的执行逻辑。执行失败的SQL,其跟踪信息不具有准确的参考价值。
- 节点重启,可能导致该节点的数据丢失。
- SQL语句执行完立即退出会话,可能会丢失该会话未刷新到系统表中的数据。
- 因数据库内核未对慢SQL做持久化处理,在数据库实例重启、升级、节点修复/替换/启停、主备倒换、形态变更后,慢SQL视图会被清空,新建慢SQL的SQL Patch之后,如果后续慢SQL不再发生,则无法通过白屏化查询之前慢SQL创建的SQL Patch。
操作步骤
-
单击具体实例名称,进入“实例管理”详情页。
-
选择“诊断优化 > SQL诊断 > 慢SQL”,显示“慢SQL”页面。
图1 慢SQL列表
慢SQL列表:
- 可以自行选择慢SQL阈值,默认1秒,只能设置阈值大于等于1秒,实时查询实例上大于等于该阈值的SQL执行信息。
- 默认显示近一小时的数据,用户可自行选择时间区间,最多支持展示7天的慢SQL数据,可按照节点维度展示数据。
- 可依据SQL ID或SQL文本进行搜索,可手动刷新列表数据。
- 单击
可下拉展示完成的SQL文本内容。
- 单击具体的SQL ID,下方“慢SQL详情”中展示该条ID的详情。“慢SQL详情”中的“SQL ID”与“慢SQL列表”中所选的“SQL ID”对应一致。
图2 慢SQL详情
慢SQL详情:慢SQL详情是对慢SQL列表中的某一条SQL在同一时间段内的详情展示。
- 默认显示近一小时的数据,用户可自行选择时间区间,最多支持展示7天的慢SQL数据,可按照节点维度展示数据。
- 可单击
后选择需要展示的参数字段。
模块 参数名称 参数解释 慢SQL列表 SQL ID 慢SQL的归一化SQL ID。 用户名 执行该SQL的用户。 SQL文本 慢SQL的归一化模板语句。 SQL计划 SQL执行计划。 慢SQL次数 限定时间跨度内该慢SQL总执行次数。 平均执行时间(um) 限定时间跨度内该慢SQL模板的平均执行时间。 平均CPU耗时(um) CPU时间,单位:微秒。 平均IO耗时(um) IO上的时间花费,单位:微秒。 平均返回行 SELECT返回的结果集行数。 平均扫描行 执行SQL扫描的行数。 BUFFER命中率 缓存命中率。 节点ID SQL执行的节点ID。 节点名称 SQL执行的节点名称。 SQL Patch 支持慢SQL模板和Patch hint文本绑定。单击“详情”,可设置Patch名称与内容。详细信息可参见SQL PATCH。 执行计划绑定 主备版实例的SQL优化执行计划绑定。单击“详情”,显示当前主备版实例生效绑定计划,并且支持绑定和解绑。详细信息可参见执行计划绑定。 慢SQL详情 SQL ID 慢SQL的归一化SQL ID。 用户名 执行该SQL的用户。 客户端地址 用户发起的请求的客户端地址。 客户端端口 用户发起的请求的客户端端口。 SQL文本 慢SQL的归一化模板语句。 SQL计划 该SQL语句执行计划。 开始时间 语句启动的时间。 结束时间 语句结束的时间。 返回行数 该SQL语句结果返回行数。 生成计划耗时(us) SQL生成计划时间,单位:微秒。 扫描行数 扫描行。 扫描页面数 扫描页。 命中页面数 命中页。 总耗时(um) 总的耗时时间。 CPU耗时(um) CPU时间,单位:微秒。 IO耗时 IO上的时间花费,单位:微秒。 加锁次数 加锁次数。 加锁耗时(um) 加锁耗时。 节点ID SQL执行的节点ID。 节点名称 SQL执行的节点名称。
SQL PATCH
操作场景
GaussDB数据库实例存在慢SQL时,用户想要优化慢SQL的执行计划,可以使用SQL PATCH进行调优。
特性约束
因数据库内核未对慢SQL做持久化处理,在数据库实例重启、升级、节点修复/替换/启停、主备倒换、形态变更后,慢SQL视图会被清空,新建慢SQL的SQL Patch之后,如果后续慢SQL不再发生,则无法通过白屏化查询之前慢SQL创建的SQL Patch。
操作步骤
-
单击具体实例名称,进入“实例管理”详情页。
-
选择“诊断优化 > SQL诊断 > 慢SQL”,显示“慢SQL”页面。
-
在“SQL PATCH”列单击“详情”,显示“SQL Patch详情”页面。
-
如果没创建SQL Patch,则可输入Patch名称和Patch内容,单击“创建”,则可创建SQL Patch。
-
Patch名称:不为空,不支持中文和特殊字符,可以包含英文字母(区分大小写)、数字、划线(_)、dollor符号($),长度限制1~63。
Patch执行节点:SQL Patch仅支持在主节点的Unique SQL ID 上执行,其它节点SQL Patch项会显示--。
-
Patch内容(hint):不为空,不支持中文,内容需符合hint语法(根据实际实例类型可参见《云数据库 GaussDB 分布式版开发指南》或《云数据库 GaussDB 主备版开发指南》“使用SQL PATCH进行调优”章节),长度限制1~1024。
图3 创建SQL Patch
-
-
如果已创建SQL Patch,则显示SQL Patch信息。
图4 SQL Patch详情
- 状态:单击
,可开启或关闭SQL Patch。关闭SQL Patch,状态显示未生效;开启SQL Patch,状态显示生效中。
- 单击“删除”,则可删除SQL Patch。
- 状态:单击
-
执行计划绑定
操作场景
将特定的执行计划与SQL语句绑定在一起,以提升被纳管主备版数据库实例查询性能,并确保执行计划的稳定性。
约束限制
执行绑定计划,只能对主备版的GaussDB数据库实例进行操作,不支持分布式版的GaussDB实例。
操作步骤
-
单击具体主备版实例名称,进入“实例管理”详情页。
-
选择“诊断优化 > SQL诊断 > 慢SQL”,显示“慢SQL”页面。
-
在“执行计划绑定”列单击“详情”,弹出“执行计划绑定详情”框,可查看该条慢SQL捕获到的执行计划。
绑定状态:单击
,选择绑定状态,单击“确定”后,完成绑定/解绑慢SQL执行计划。
一条慢SQL可以绑定多个执行计划,被纳管实例将从中选择代价最小的执行计划。
图5 执行计划绑定详情
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…