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

SQL全链路分析

操作场景

支持通过业务SQL的唯一SQL ID、事务ID进行SQL执行链路信息查询。

前提条件

  • 登录账号需要具备授权项“gaussdb:instance:listSqlLink”。
  • 已开启过全量SQL,存在有效采集数据。

约束限制

  • 事务ID为0时不支持使用事务ID查询链路信息。
  • 唯一SQL ID为0时没有链路信息。
  • GaussDB实例的数据库引擎版本需要大于等于V2.0-8.0.1,内核版本大于等于505.0.0。版本号查询方法请参见查看云数据库GaussDB数据库和内核引擎版本

操作步骤

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB,进入云数据库 GaussDB信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
  5. 单击“诊断优化 > SQL诊断”,选择全量SQL。
  6. 进入“全量SQL统计”页签,单击展开目标行数据。或进入“全量单条SQL”页签。
  7. 单击“事务ID”或在操作列中单击“更多 > 全链路”跳转至SQL全链路。

    • 单击全量SQL列表中操作列的“更多 > 全链路”按钮,跳转至全链路页面,展示该条SQL的执行链路信息。
    • 单击全量SQL列表中事务ID(事务ID不为0),跳转至全链路页面,展示该事务的执行链路信息。
    图1 SQL全链路信息

    表1 SQL全链路部分参数说明

    模块

    参数名称

    参数解释

    资源耗时信息

    CPU耗时

    CPU上花费的时间。

    IO耗时

    IO上花费的时间。

    其余耗时

    有效的DB时间减去CPU耗时、IO耗时。

    内核执行模块耗时信息

    SQL解析耗时

    解析SQL语句花费的时间。

    SQL重写耗时

    重写SQL语句花费的时间。

    SQL生成计划耗时

    生成SQL执行计划花费的时间。

    执行器内执行耗时

    执行SQL语句花费的时间。

    其余耗时

    执行SQL语句花费总时间减去SQL解析耗时、SQL重写耗时、SQL生成计划耗时和执行器内执行耗时之和。

    等待事件代码耗时信息

    耗时TOP5事件列表

    耗时最多的事件耗时信息列表。

    其余事件耗时

    所有事件耗时减去TOP5事件耗时。

    其余耗时

    有效的DB时间减去所有等待事件代码耗时。

    资源类等待事件耗时-IO耗时信息

    耗时TOP5事件列表

    耗时最多的IO事件列表。

    其余事件耗时

    所有IO事件耗时减去TOP5 IO事件耗时。

    其余耗时

    有效的DB时间减去所有IO等待事件耗时。

    资源类等待事件耗时-加锁耗时信息

    耗时TOP5事件列表

    耗时最多的加锁事件列表。

    其余事件耗时

    所有加锁事件耗时减去TOP5 加锁事件耗时。

    其余耗时

    有效的DB时间减去所有加锁事件耗时。

    资源类等待事件耗时-轻量级加锁耗时信息

    耗时TOP5事件列表

    耗时最多的轻量级加锁事件列表。

    其余事件耗时

    所有轻量级加锁事件耗时减去TOP5 轻量级加锁事件耗时。

    其余耗时

    有效的DB时间减去所有轻量级加锁事件耗时。

    具体等待事件参数的含义请参考“开发指南 >系统表和视图 > 系统视图 >其他系统视图 > PG_THREAD_WAIT_STATUS”章节中关于“wait_status”和“wait_event”的描述。

  8. 鼠标悬浮到具体节点,显示SQL在该节点上执行的详细信息。

    图2 SQL执行信息

    DB Time:耗费的DB时间总和,多线程将累加(单位:微秒)。DB Time和开始时间/结束时间统计是两套机制,不完全符合;但差异非常小,不影响性能问题分析。

相关文档