yuan-er

导航

 

采集并诊断慢SQL

操作场景

慢SQL诊断用于在数据库当前负载下,分析慢SQL执行时间过长的可能原因,并给出对应的诊断建议。

注意事项

  • 只有被DBMind实例纳管的实例可以进行SQL诊断。
  • GaussDB实例的数据库引擎版本需要大于等于V2.0-8.0.1,内核版本大于等于505.0.0。
  • SQL采集的SQL最小执行时长的默认值,可以通过修改实例参数“log_min_duration_statement”进行配置。实例参数的查看和修改方法请参考修改GaussDB实例参数
  • 集中式版实例只支持查询主DN节点,分布式场景只支持查询CN节点。对在剩余节点上执行的SQL暂不支持采集。
  • 主备切换、实例重启后,历史的慢SQL数据丢失。
  • 数据源为当前SQL数据、历史SQL数据、模板采集数据时,采集最多1000条SQL。
  • 在执行SQL诊断时,如果诊断结果为“INVALID SQL”。表示进行慢SQL分析的用户(dbmind_manager)权限不足,需要参考如下语句为分析用户赋权:
    • 授权用户连接到指定数据库:

      grant connect on database <数据库名> to <用户名>;

    • 授予用户对指定模式的使用权限:

      grant usage on schema <schema名> to <用户名>;

    • 授予用户在指定模式下所有表的SELECT权限:

      grant select on all tables in schema <schema名> to <用户名>;

通过“SQL采集”诊断

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
  5. 单击诊断优化 > SQL诊断”,显示“SQL诊断”页面。
  6. 单击“SQL采集”页签,可进行SQL诊断。

     

    图1 SQL采集

     

    表1 SQL采集部分参数说明

    参数名称

    参数说明

    数据源

    慢SQL诊断仅针对当前SQL数据、历史SQL数据和模板采集数据。

    选择“模板采集数据”时,必须开启ASP,否则查询数据为空。开启ASP详细内容请参考ASP报告

    节点选择

    在集中式场景下,默认节点是主DN,分布式场景下,提供给用户选择CN节点。

    用户名

    用户可通过下拉框选择用户名。

    须知:

    系统用户名rdsAdmin、rdsBackup、rdsMetric、rdsRepl不会在下拉框中显示。

    数据库模式

    当前schema名称,仅数据源是“历史SQL数据”时展示。查询出来的值可能显示为:"$user",public。$user表示与当前会话用户名同名的schema名,如果这样的模式不存在,$user将被忽略。所以默认情况下,用户连接数据库后,如果数据库下存在同名Schema,则对象会添加到同名Schema下,否则对象被添加到Public Schema下。

    最小执行时长

    • 数据源选择当前SQL数据时,最小执行时长是指当前SQL已执行的时间。
    • 数据源选择为历史SQL数据时,最小执行时长是指历史SQL执行的时长,值可通过参数管理页配置log_min_duration_statement参数,默认为3000毫秒。

     

  7. 填写完成后,单击“开始采集”。

     

    图2 诊断SQL
  8. 单击SQL列表中的操作 > 诊断”,查看诊断结果。

     

    • 模板计划:SQL可能实施的执行计划。
    • 根因:慢SQL根因,可能有多条。
    • 建议:对根因的建议。
    图3 慢SQL诊断

    根因说明请参见《云数据库 GaussDB 使用指南(for 华为云Stack 8.5.0)》中的“ 特性指南 > DBMind: 数据库自治运维 > DBMind的AI子功能 > Slow Query Diagnosis”章节。

通过“自定义”页签诊断

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
  5. 单击诊断优化 > SQL诊断”,显示“SQL诊断”页面。
  6. 单击“自定义”页签,可进行SQL诊断。

     

    图4 自定义页签

     

    表2 自定义部分参数说明

    参数名称

    参数说明

    时序区间(选填)

    传入上述时间范围,则会判断该时间范围内系统资源消耗情况,分析其对SQL的影响,否则会以当前资源为准分析对SQL执行的影响。

    SQL语句(必填)

    • 必须为DML语句, 可以为SELECT/DELETE/UPDATE/INSERT。
    • 多条SQL语句以“;”隔开。

     

  7. 填写完成后,单击“开始诊断”。
 
posted on 2025-02-26 15:43  数据库笔记  阅读(8)  评论(0)    收藏  举报