文档首页/ 云数据库 GaussDB/ 开发指南(分布式_V2.0-10.x)/ 特性使用指导/ 存储过程性能定位方法/ 存储过程执行期间性能定位方法/ pg_stat_activity查询存储过程正在执行的语句/ 操作指导
更新时间:2026-07-28 GMT+08:00
操作指导
前提条件
需要开启track_activities和track_procedure_sql参数,参数值都设置为on。
语法
不涉及。
注意事项
pg_stat_activity系统视图中query字段显示长度受GUC参数track_activity_query_size控制,默认1024字节,语句过长会被截断显示不完整。
示例
-- 创建存储过程,可参考如下示例 gaussdb=# CREATE OR REPLACE PROCEDURE p1() AS BEGIN pg_sleep(2); END; / CREATE PROCEDURE gaussdb=# CREATE OR REPLACE PROCEDURE p2() AS BEGIN pg_sleep(2); END; / CREATE PROCEDURE gaussdb=# CREATE OR REPLACE PROCEDURE p3() AS BEGIN p1(); p2(); END; / CREATE PROCEDURE gaussdb=# CREATE OR REPLACE PROCEDURE p4() AS BEGIN p1(); p2(); END; / CREATE PROCEDURE gaussdb=# CREATE OR REPLACE PROCEDURE p5() AS BEGIN p3(); p4(); END; / CREATE PROCEDURE -- 会话A,调用存储过程 gaussdb=# CALL p5(); -- 会话B,在会话A执行期间查看是会话A正在执行的SQL,等会话A执行完成后查看语句信息,是会话A执行的上一条会被记录下来的语句。 gaussdb=# SELECT query FROM pg_stat_activity WHERE query LIKE '%call%' AND sessionid != pg_current_sessid(); query ------------------------------------------------------------------------------------------ query string: call p5();, current level: p2(), lineno: 3, execute stmt: CALL pg_sleep(2) (1 row)