
# 特性概述
#### 功能定义
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信息。
