文档

查看 SQL 详情

更新时间:

SQL 详情页会根据不同的 SQL 诊断情况,选择性展示对应 SQL 的文本、优化建议、采样明细、诊断详情、采样历史、执行历史和执行计划等信息。

SQL 详情

在 SQL 诊断中查看 SQL 的基本信息后,可以通过单击 SQL 跳转到 SQL 详情页面。根据不同的 SQL 情况,展示对应 SQL 的文本、优化建议、采样明细、诊断详情、采样历史、执行历史和执行计划等信息。

SQL 文本

SQL 文本 区域,可以查看完整的 SQL 文本。此外,通过勾选 表结构,您可以查看对应表的结构信息。

image

优化建议

说明

没有优化建议时,该卡片不显示。

优化建议 区域,可以查看诊断时间范围内该 SQL 的所有问题及对应的优化建议。您可以按照系统给出的优化建议进行相关操作。目前存在两种优化建议:

  • 计划推荐: 分析该 SQL 最近 1 周的执行计划,当发现某个执行计划在 CPU 时间上比其他同类型(本地计划或者分布式计划)的执行计划更优秀时,则会推荐用户关注。当存在计划推荐时,建议您详细分析该计划与现有执行计划差异,并确定没有 DDL 变更,再考虑进行绑定。绑定后请仔细观察优化效果,如果没有优化效果,请及时回滚操作。

    计划推荐的具体规则:计划推荐根据最新执行计划的 CPU 时间进行分档考虑,当最新执行计划 CPU 时间较小时,被推荐的候选计划需要大幅度优于最新计划才会推荐。 当最新执行计划 CPU 时间较大时,被推荐的候选计划则需要小幅度的优于最新计划才会被推荐。

    最新计划 CPU 时间

    候选计划 CPU 时间

    [0-1) ms

    候选计划为最新计划 CPU 时间的 1/10

    [1-10) ms

    候选计划为最新计划 CPU 时间的 1/5

    [10-100) ms

    候选计划为最新计划 CPU 时间的 1/2

    [100-1000) ms

    候选计划为最新计划 CPU 时间的 2/3

    [1000- 无穷大)

    候选计划为最新计划 CPU 时间的 5/6

  • 索引推荐,会根据以下算法进行:

    • 等值查询列在前,以任意顺序组合。

    • 如有范围查询,将选择性最好的范围查询列放在等值查询列后。

    • 如果没有范围查询,当满足消除排序条件时,将排序列放在等值查询后。

    • 将谓词中其他列放在索引后面,此时已是半宽索引。

    • 将 Select 中其他列放在索引后面,构造覆盖索引。

    • 当覆盖索引不超过 8 列时,会推荐覆盖索引,否则会推荐半宽索引。

    • 当 CPU 时间超过 10ms 或响应时间超过 20ms 时才会进行索引推荐。

优化建议..png

SQL 诊断详情

说明

没有诊断详情时,该卡片不显示。

SQL 诊断详情 区域,可以查看诊断时间范围内出现同类型问题的次数以及最新一次诊断详情,包括时间范围、执行次数、CPU 时间和最后执行时间。单击三角箭头,可进一步查看诊断依据和问题排查建议。1

SQL 采样明细

说明

仅 SlowSQL 详情页显示 SQL 采样明细信息,其他类型的 SQL 详情页不显示。

在 SQL 采样明细中,您可查看当前 SQL 的具体采样信息。单击 列管理,可设置需要展示的列并调整列的先后顺序。单击 导出 可下载 SQL 采样明细列表。

image

聚合 SQL 明细

说明

仅查看聚合 SQL 详情页时,会显示聚合 SQL 明细。

聚合 SQL 明细 区域,您可查看所有相关的 SQL,默认展示 SQL 文本SQL ID数据库 等列,以及展开后的错误信息。

image

物理执行计划

物理执行计划 页签,非聚合 SQL 和聚合 SQL 的展示会有所区别。

非聚合 SQL 物理执行计划

  • 展开 Plan Hash,查看对应的物理执行计划详情。

    在执行计划详情页面中:

    • 查看执行步骤中算子的具体应用过程和 Server 执行计划。算子的基础介绍,请参见 SQL 执行计划简介

    • 将光标悬停在执行计划的对象名称上,可以查看表结构或 DDL 索引信息等。

      • 如果对象名称是表,可以查看表结构。image

      • 如果对象名称是索引,可以查看 DDL 索引信息等。image

  • 单击 自定义时间,从下拉列表中选择 近 1 小时近 12 小时近 1 天 快速筛选查询时间段。您也可以自定义查询时间段,当前仅支持查询最近 15 天的物理执行计划。

  • 单击 近 30 天绑定历史记录,查看最近 30 天物理执行计划的绑定记录。

  • 单击 刷新 plan cache,确认后会清除租户下该 SQL 的执行计划缓存,下次执行这个 SQL 的时候会重新生成执行计划。

  • 单击 绑定,确认后会强制 SQL 按该执行计划执行。如果执行计划处于绑定状态,则会显示 已绑定image

聚合 SQL 物理执行计划

说明

SQL 聚合是将选定范围内的相似的 SQL 聚合,选择时间范围不同包含的 SQL 列表也不相同。所以执行计划是否绑定暂时无法显示,请前往优化中心查看具体的 Outline 生效信息以及操作历史。

  • 展开 Plan Hash,查看对应的物理执行计划详情和聚合 SQL 明细。

    • 执行计划详情 页签:

      • 查看执行步骤中算子的具体应用过程和 Server 执行计划。算子的基础介绍,请参见 SQL 执行计划简介

      • 将光标悬停在执行计划的对象名称上,可以查看表结构或 DDL 索引信息等。

      • 如果对象名称是表,可以查看表结构。image

      • 如果对象名称是索引,可以查看 DDL 索引信息等。

    • 聚合 SQL 明细 页签,查看聚合 SQL 列表,包含 SQL 文本SQL IDimage

  • 单击 自定义时间,从下拉列表中选择 近 1 小时近 12 小时近 1 天 快速筛选查询时间段。您也可以自定义查询时间段,当前仅支持查询最近 15 天的物理执行计划。

  • 单击 绑定,确认后会强制 SQL 按该执行计划执行。如果执行计划处于绑定状态,则会显示 已绑定

SQL 执行历史

SQL 执行历史 页签,非聚合 SQL 和聚合 SQL 的展示会有所区别。

非聚合 SQL 执行历史

您可以查看近 1 小时、近 12 小时、近 1 天或自定义时间范围内的 SQL 执行历史以及 SQL 相关的图表。

  • SQL 执行历史:可查看当前 SQL 语句的历史执行信息。

    • 单击 全部节点,可选择指定节点进行查看。

    • 单击 自定义时间,从下拉列表中选择 近 1 小时近 12 小时近 1 天 进行查看。您也可以自定义时间,但是需要注意以下限制:

      • 仅支持查看最近 15 天的 SQL 执行历史。

      • 最小范围限定:

        • 3天内:选择的时间范围不少于 1 分钟。

        • 3至7天内:选择的时间范围不少于 5 分钟。

        • 超过7天:选择的时间范围不少于 20 分钟。

    • 单击右上方的 列管理,可勾选需要高频查看的信息。

    • 单击 导出,可下载 SQL 执行历史列表。

      image

  • SQL 执行耗时:您可通过单击右侧类别选择您要查看的执行耗时情况。

    image

  • 总执行次数:单击 总执行次数 后的下拉箭头,选择您想要查看的数据。

    image

聚合 SQL 执行历史

您可以查看近 1 小时、近 12 小时、近 1 天或自定义时间范围内的 SQL 执行历史以及 SQL 相关的图表。

  • SQL 执行历史:可查看当前 SQL 语句的历史执行信息,单击右上方的 列管理,可勾选需要高频查看的信息,单击 导出 可下载 SQL 执行历史列表。

    image.png

  • 聚合 SQL 的图表数据,可通过聚合 SQL 维度或者单一 SQL 维度分别查看,默认展示聚合 SQL 维度 SQL 执行耗时-CPU 时间总执行次数 图表。

    • 聚合 SQL 维度统计了关联 SQL 的整体数据。

      SQL 执行耗时:您可通过下拉选择 总数据库耗时平均耗时响应时间 等选项进行查看。

      image

      总执行次数:单击 总执行次数 后的下拉箭头,选择您想要查看的数据。

      image

    • 单一 SQL 维度默认展示 CPU 占比前 10 的 SQL 数据,可通过提示筛选更多 SQL。

      SQL 执行耗时:您可通过下拉选择 总数据库耗时平均耗时响应时间 等选项进行查看。同时可以通过单击 SQL ID 查看指定 SQL 的信息。

      image

      总执行次数:单击 总执行次数 后的下拉箭头,选择您想要查看的数据。同时可以通过单击 SQL ID 查看指定 SQL 的信息。

      image

表信息

在表信息页签,您可以查看索引的相关信息并进行索引绑定等操作。如果索引处于已绑定状态,则会显示 已绑定。此外,您还可以查看表统计信息。

image

高级设置

在高级设置页签,您可以进行如下操作:

  1. 打开 限流 开关。

  2. 设置单个 OBServer 执行指定 SQL 的并发个数。绑定索引和限定并发数不能同时生效。

  3. 单击 更新设置,您的设置将会实时生效。1