更新时间:2026-07-28 GMT+08:00
分享

特性概述

功能定义

pg_stat_activity系统视图的query字段显示该会话当前正在执行的SQL语句,在R2C10版本后,扩展支持查看存储过程内正在执行的SQL语句。

用户场景

会话执行存储过程阻塞时间较长,存储过程仍在执行未结束,需要确认当前会话执行到了存储过程的所处阶段,执行的语句,可以通过pg_stat_activity直观地看到相关的信息。

规格约束

  • 必须开启GUC参数track_activities=on、track_procedure_sql=on;
  • 由于需要考虑数据库的性能,支持查看以下类型的语句:变量赋值语句、IF条件语句、ELSEIF语句、CASE语句、OPEN CURSOR语句、FETCH CURSOR语句,FORCURSOR语句、动态语句、LOOP语句、WHILE语句、FOR循环语句、PERFORM语句、DML语句、嵌套子程序、COMMIT/ROLLBACK语句、SAVE POINT语句;
  • 执行到不支持记录的语句时,pg_stat_activity系统视图query字段显示的是上一条支持记录的语句。

技术架构

pg_stat_activity中的记录以会话为单位,统计每个会话正在执行的语句,对于存储过程场景,默认记录的query值是最顶层的存储过程调用语句。执行到存储过程内语句时,对支持记录显示的场景,在相关语句处理逻辑中,覆盖当前会话正在执行的query信息。

相关文档