数据库自治服务DAS(Database Autonomy Service)提供SQL Review功能,本文介绍如何在SQL洞察和审计SQL洞察功能中进行SQL Review

前提条件

  • 已在DAS中接入对应的数据库实例,并且接入状态显示为连接正常

  • 实例已开启SQL洞察和审计,详情请参见开启SQL洞察和审计

支持的数据库和地域

开启DAS企业版后,才可以使用该企业版提供的SQL洞察和审计功能,不同的企业版支持的数据库和地域不同。各个企业版支持的数据库和地域请参见各个版本支持的数据库和地域

功能介绍

SQL Review功能对选定区间与基准区间内的数据库实例进行workload分析,并且对数据库实例中运行的SQL进行深度分析,展示数据库实例的索引优化建议、SQL改写建议、TOP SQL、新增SQL、失败SQL、SQL特征分析、执行变化SQL、性能恶化SQL和TOP流量表。

SQL Review功能提供全局SQL负载分析能力(包括SQL样本、平均执行耗时,耗时比例,执行次数比例,平均扫描行数,总执行次数,首次出现时间等内容的分析),辅助用户快速定位到数据库实例中的可疑SQL(资源消耗过大、趋势变化过大、性能恶化、执行失败、新增SQL等),并对可疑SQL进行分析,给出相应的优化建议。

功能模块介绍:

  • 索引优化建议:以表为单位,展示用户选择时间段内SQL的索引优化建议,包括索引列、DDL语句、预期收益等。

  • SQL改写建议:对执行效率不高效的SQL语句提供相应的改写建议。

  • TOP SQL:分别展示资源消耗TOP 10 SQL、平均扫描行数TOP 10 SQL、执行次数TOP 10 SQL,帮助用户快速定位对数据库影响较大的SQL。

  • 新增SQL:通过对诊断时间和对比时间内SQL的对比,展示新出现的SQL,帮助用户确认变更是否符合业务预期。

  • 失败SQL:执行失败的SQL列表,展示包括SQL ID、SQL样本、数据库、错误码、错误次数。

  • SQL特征分析:根据SQL文本进行特征分析,并按照SQL类型对各个SQL特征进行分类统计。

  • 执行变化SQL:分别按照平均扫描行数、执行次数的变化率对SQL进行统计,展示不同变化率范围内的SQL模板数量、耗时比例、总执行次数、执行次数比例。

  • 性能恶化SQL:基于执行变化SQL,筛选出平均扫描行数、总执行次数或平均耗时超过指定变化率的SQL。

  • TOP流量表:基于数据库中表的流量情况展示相应信息,包括表名、数据库名、相关SQL模板数、总执行次数、Select次数、Insert次数、Update次数、Delete次数和平均执行耗时等信息。

操作步骤

  1. 登录DAS控制台

  2. 在左侧导航栏中,单击实例监控

  3. 找到目标实例,单击实例ID,进入目标实例详情页。

  4. 在左侧导航栏单击请求分析 > SQL洞察和审计,然后在右侧打开的页面单击SQL洞察 > SQL Review

  5. SQL Review页面根据需要选择对应的操作。

    • 新建SQL Review

      单击新建SQL Review,在新建SQL Review窗口配置如下参数后,单击确定,发起SQL Review。

      说明

      同一个数据库实例只能有一个正在执行SQL Review任务。

      参数

      说明

      SQL Review名称

      SQL Review任务的名称。

      选择库

      选择数据库实例中需要进行SQL Review的数据库。

      诊断时间范围

      进行诊断的时间范围。

      说明
      • 诊断的时间必须是开启DAS企业版后且在SQL洞察存储时长范围内。

      • 为了保证SQL Review的准确率,建议诊断的时间范围大于24小时;最大不能超过8天,最小不能小于1小时。

      • 对同一时间的SQL,不能多次诊断。

      对比时间范围

      进行对比的时间范围。

      说明
      • 对比的时间必须是开启DAS企业版后且在SQL洞察存储时长范围内。

      • 诊断时间和对比时间的长度必须一致,且不能重叠。

      • 对比时间要早于诊断时间。

      诊断内容

      诊断的内容,根据需要选择一个或者多个项目进行诊断。

      • 索引建议

      • SQL改写建议

      • 新增SQL

      • 失败SQL

      • TOP SQL

      • SQL特征分析

      • 执行变化SQL

      • TOP流量表

    • 查看SQL Review结果

      在页面右上角选择时间范围,单击查看,即可查看指定时间范围内发起的SQL Review任务。

      说明

      选择时间范围时,查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔最大不能超过7天。您可以查询数据库实例6个月内的SQL Review任务。

      • 单击操作列的详情,可以查看该任务结果的详细信息。具体请参见结果详情介绍

      • 单击操作列的下载,可以将该任务的结果下载到本地。

      • 单击操作列的分享,可以将该任务的结果分享给具有DAS控制台权限的用户。

      • 单击任务名前的加号,可以查看SQL Review任务中包含的子任务,以及每个子任务的状态。

        单击子任务操作列的详情可以查看该子任务结果的详细信息。

结果详情介绍

  • 详情概览详情概览

  • 索引优化建议:单击表名前的加号,查看建议详情DDL语句预期收益索引优化建议

    • 单击详情,查看该索引建议的详细信息。

    • 单击执行DDL,执行优化后的DDL语句。

    • 单击验证优化效果,可以创建验证优化效果任务,对索引优化建议进行验证。

      说明
      • 该功能利用实例的备份恢复,将用户选定的备份集克隆到系统创建的新实例中,验证优化效果,对原业务实例无影响。

      • 费用与实例恢复功能创建的新实例收费一致,无额外费用。

      • 完成验证之后,您需要手动释放系统创建的新实例。

      创建验证任务

  • SQL改写建议:查看对执行效率不高效的SQL语句提供的改写建议。

    单击操作列的优化,进入SQL诊断优化页,查看优化后的SQL执行计划诊断结果

    若您采纳诊断建议,单击SQL诊断优化页右上角的复制,并将优化后的SQL粘贴到数据库客户端或DMS上执行,若不采纳诊断建议,可直接单击取消结束诊断。

    SQL改写建议

  • TOP SQL:展示资源消耗TOP 10 SQL平均扫描行数TOP 10 SQL执行次数TOP 10 SQL

    • 单击SQL ID,查看该SQL的详情。

    • 单击操作列的优化,进入SQL诊断优化页,查看优化后的SQL执行计划诊断结果

      若您采纳诊断建议,单击SQL诊断优化页右上角的复制,并将优化后的SQL粘贴到数据库客户端或DMS上执行,若不采纳诊断建议,可直接单击取消结束诊断。

    TOP SQL

  • 新增SQL:通过对诊断时间和对比时间内SQL的对比,查看新出现的SQL。

    • 单击SQL ID,查看该SQL的详情。

    • 单击操作列的优化,进入SQL诊断优化页,查看优化后的SQL执行计划诊断结果

      若您采纳诊断建议,单击SQL诊断优化页右上角的复制,并将优化后的SQL粘贴到数据库客户端或DMS上执行,若不采纳诊断建议,可直接单击取消结束诊断。

    新增SQL

  • 失败SQL:查看执行失败的SQL。

    单击SQL ID,查看该SQL的详情。

    失败SQL

  • SQL特征分析:查看SQL特征分析,单击SQL模板数量,可以查看该SQL特征的SQL模板数量详情

    SQL模板数量详情页,单击SQL ID,查看该SQL的详情。

    SQL特征分析

  • 执行变化SQL:按照平均扫描行数、执行次数,查看不同变化区间的SQL。

    单击详情,查看执行变化趋势详情。在执行变化趋势详情页:

    • 单击SQL ID,查看该SQL的详情。

    • 单击操作列的优化,进入SQL诊断优化页,查看优化后的SQL执行计划诊断结果

      若您采纳诊断建议,单击SQL诊断优化页右上角的复制,并将优化后的SQL粘贴到数据库客户端或DMS上执行,若不采纳诊断建议,可直接单击取消结束诊断。

    执行变化SQL

  • 性能恶化SQL:查看对比后性能恶化的SQL。

    • 单击SQL ID,查看该SQL的详情。

    • 单击操作列的优化,进入SQL诊断优化页,查看优化后的SQL执行计划诊断结果

      若您采纳诊断建议,单击SQL诊断优化页右上角的复制,并将优化后的SQL粘贴到数据库客户端或DMS上执行,若不采纳诊断建议,可直接单击取消结束诊断。

    性能恶化SQL

  • TOP流量表:查看数据库中流量TOP 100表的详细信息。

    • 单击表名,查看该表的字段索引

    • 单击相关SQL,查看该表相关SQL的详细信息。

    TOP流量表