更新时间:2025-09-05 GMT+08:00
分享

查看慢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

  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需要到参数管理模块调整参数值。如何修改参数请参考修改实例参数
    表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命中率

    缓存命中率。

  7. 单击操作列中的“查看SQL”按钮,可查看采集的SQL和解析后的原始SQL。

    开启track_stmt_parameter参数后,会把SQL文本中的变量替换成真实值,展示原始的SQL。对于track_stmt_parameter参数关闭时采集的SQL文本,无法获取到SQL参数变量的值,展示的内容为空。如何修改参数请参考修改实例参数

  8. 单击操作列的“SQL限流”可以对选中慢SQL的归一化SQL ID进行限流。如何创建SQL限流任务请参见配置SQL限流

SQL计划

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB,进入云数据库 GaussDB信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
  5. 单击“诊断优化 > SQL视图”。
  6. 在“慢SQL”页签,获取慢SQL列表。
  7. 在“操作”列单击“更多 > SQL计划”,显示“执行计划绑定详情”页面。

    表2 执行计划绑定详情列表字段说明

    列表名称

    说明

    执行计划概览

    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。
      图1 SQL PATCH
    • 如果已创建SQL PATCH,则显示SQL PATCH信息。
      图2 SQL PATCH详情
      • 状态:单击,可开启或关闭SQL PATCH。关闭SQL PATCH,状态显示未生效,开启SQL PATCH,状态显示生效中。
      • 单击“删除”,则可删除SQL PATCH。

查询表定义

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB,进入云数据库 GaussDB信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
  5. 单击“诊断优化 > SQL视图”。
  6. 在“慢SQL”页签,选择“指定节点”以及“时间范围”,单击“查询”获取慢SQL列表。
  7. 单击“操作”列的“更多 > 表定义”。在“表定义”页面,查看“识别到的表”。

    如未识别到表,请单击“添加识别到的表”填写表名后进行表定义查询。如识别结果有误,请单击“编辑”进行修改并保存后再进行表定义查询。

  8. 单击指定表名前的进行表定义的查询。

    图3 表定义

  9. 单击表定义中的SQL语句查看具体的表定义信息。

    图4 表定义具体信息

相关文档