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数据库和内核引擎版本。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入实例详情页面。
- 单击“诊断优化 > SQL诊断”,选择全量SQL。
- 进入“全量SQL统计”页签,单击
展开目标行数据。或进入“全量单条SQL”页签。
- 单击“事务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”的描述。
- 鼠标悬浮到具体节点,显示SQL在该节点上执行的详细信息。
图2 SQL执行信息
DB Time:耗费的DB时间总和,多线程将累加(单位:微秒)。DB Time和开始时间/结束时间统计是两套机制,不完全符合;但差异非常小,不影响性能问题分析。