GaussDB-慢SQL

115 阅读6分钟

GaussDB-慢SQL

操作场景

提供慢SQL列表和慢SQL详情信息,帮助开发者回溯执行时间超过阈值的SQL,诊断SQL性能瓶颈。

特性约束
  • 目前的SQL跟踪信息,基于正常的执行逻辑。执行失败的SQL,其跟踪信息不具有准确的参考价值。
  • 节点重启,可能导致该节点的数据丢失。
  • SQL语句执行完立即退出会话,可能会丢失该会话未刷新到系统表中的数据。
  • 因数据库内核未对慢SQL做持久化处理,在数据库实例重启、升级、节点修复/替换/启停、主备倒换、形态变更后,慢SQL视图会被清空,新建慢SQL的SQL Patch之后,如果后续慢SQL不再发生,则无法通过白屏化查询之前慢SQL创建的SQL Patch。
操作步骤
  1. 登录云数据库GaussDB管理平台(TPOPS)

  2. 单击具体实例名称,进入“实例管理”详情页。

  3. 选择“诊断优化 > 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命中率缓存命中率。
    节点IDSQL执行的节点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)加锁耗时。
    节点IDSQL执行的节点ID。
    节点名称SQL执行的节点名称。

SQL PATCH

操作场景

GaussDB数据库实例存在慢SQL时,用户想要优化慢SQL的执行计划,可以使用SQL PATCH进行调优。

特性约束

因数据库内核未对慢SQL做持久化处理,在数据库实例重启、升级、节点修复/替换/启停、主备倒换、形态变更后,慢SQL视图会被清空,新建慢SQL的SQL Patch之后,如果后续慢SQL不再发生,则无法通过白屏化查询之前慢SQL创建的SQL Patch。

操作步骤

  1. 登录云数据库GaussDB管理平台(TPOPS)

  2. 单击具体实例名称,进入“实例管理”详情页。

  3. 选择“诊断优化 > SQL诊断 > 慢SQL”,显示“慢SQL”页面。

  4. 在“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实例。

操作步骤

  1. 登录云数据库GaussDB管理平台(TPOPS)

  2. 单击具体主备版实例名称,进入“实例管理”详情页。

  3. 选择“诊断优化 > SQL诊断 > 慢SQL”,显示“慢SQL”页面。

  4. 在“执行计划绑定”列单击“详情”,弹出“执行计划绑定详情”框,可查看该条慢SQL捕获到的执行计划。

    绑定状态:单击,选择绑定状态,单击“确定”后,完成绑定/解绑慢SQL执行计划。

    一条慢SQL可以绑定多个执行计划,被纳管实例将从中选择代价最小的执行计划。

    图5 执行计划绑定详情

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…