查询诊断

AnalyticDB PostgreSQL版查询分析功能可供您查看SQL执行计划以及对应统计信息,供您对查询进行分析和调优。本文介绍查询诊断功能的基本使用方法。

前提条件

实例资源类型为存储弹性模式,且内核版本为V6.3.10.1及以上版本。如何查看和升级内核小版本,请参见查看内核小版本版本升级

注意事项

查询诊断页面仅展示执行时长超过1秒的SQL。

操作步骤

  1. 登录云原生数据仓库AnalyticDB PostgreSQL版控制台
  2. 在控制台左上角,选择实例所在地域。
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中,选择诊断与优化 > 查询分析

  5. 查询诊断页签右上角选择目标数据库、筛选条件以及时间范围,即可查看查询执行状态信息。

    查询分析页面提供查询执行泳道图SQL列表两种方式供您查看查询执行状态信息:

    • 查询执行泳道图

      泳道中的每一个条色块代表一次查询执行过程。您可以将鼠标移至色块上方查看该查询的执行相关信息,单击详情可进入查询属性页面。查询属性页面介绍,请参见查询属性

    • SQL列表

      列表中每一个条信息代表一次查询执行过程。列表中展示了查询执行的相关信息及数据,您可以单击操作列的诊断进入查询属性界面。查询属性页面介绍,请参见查询属性

      SQL列表中包含的信息如下:

      名称

      说明

      SQL

      SQL查询语句。

      开始时间

      查询开始执行的时间。

      查询Id

      查询唯一标识编号。

      会话Id

      查询所属会话(Session)编号。

      数据库

      查询的数据库名。

      状态

      查询执行的状态。取值如下:

      • 已完成

      • 执行中

      耗时

      查询执行的总时长,单位为秒(s)。

      用户名

      执行本次查询的用户。

      您可以单击下载按钮将列表数据下载至本地。

查询属性

查询属性页面由查询语句执行计划文本执行计划树三个页签组成。

查询语句

查询语句页签提供了SQL查询语句。

执行计划文本

执行计划文本页签提供了通过EXPLAIN命令获得的查询执行计划,关于执行计划的更多介绍,请参见执行计划

执行计划文本

执行计划树

执行计划树页签提供了树状执行计划图。该页签左侧展示了计划树,右侧展示了算子执行时的统计信息。您可以单击计划树中的算子卡片查看该算子的详情统计信息。

执行计划树

默认情况下,计划树中算子卡片下方线条代表该算子执行耗时在所有算子中的占比,页面右上的列表也会展示算子执行耗时占比,并按耗时占比排序。您也可以根据需求选择按照占用内存、磁盘读取数据量、磁盘读取数据耗时、网络传输数据量、网络传输数据耗时对算子排序以及计算整体比例。

算子统计信息介绍如下:

名称

说明

算子名称

算子名称与编号,在计划树中唯一。

类型ID

算子类型编号。

类型

算子类型名,在计划树中可能重复出现。

输出行数

该算子向上层算子输出数据行数。

输入行数

该算子从下层算子或磁盘中读取的数据行数。

执行占用内存

算子执行占用内存。

说明

查询分析中只统计Sort、Hash、Hash Aggregate三个算子占用的内存,其它算子因占用内存较少而忽略。

执行耗时

算子执行耗时。

磁盘读取数据量

算子从磁盘中读取数据总量。

说明

算子从磁盘读取数据包括Scan算子读取原始数据或其它算子由于内存不足所出现的数据落盘(Spill)。

磁盘读取数据耗时

算子从磁盘中读取数据的耗时。

网络传输数据量

Motion算子节点间网络传输的数据总量。

网络传输耗时

Motion算子节点间网络传输数据耗时。