更新时间:2026-07-28 GMT+08:00
操作指导
前提条件
需要在线程池模式(enable_thread_pool = on)下执行。
语法
不涉及。
注意事项
- PL_TRACE_FUNC_CLEAN不可清理正在执行TRACE的session上的数据。
- TRACE功能不支持DBE_PERF模式下的存储过程。
示例
-- 需要设置参数 enable_thread_pool = on开启线程池模式 --正常创建并执行存储过程 gaussdb=# DROP TABLE IF EXISTS t1; NOTICE: table "t1" does not exist, skipping DROP TABLE gaussdb=# CREATE TABLE t1(a INT); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE gaussdb=# CREATE OR REPLACE PROCEDURE p1() AS BEGIN FOR i IN 1..10 LOOP INSERT INTO t1 VALUES (1); END LOOP; END; / CREATE PROCEDURE --在当前session开启trace功能 gaussdb=# CALL DBE_PERF.PL_TRACE_FUNC_START(pg_current_sessid()); pl_trace_func_start --------------------- (1 row) --执行存储过程 gaussdb=# CALL p1(); p1 ---- (1 row) --查看获取的trace信息 gaussdb=# SELECT * FROM dbe_perf.pl_get_trace_info(); session_id | level | database | func | source | plan | time | threshold ------------+---------+----------+-------+------------------------------------+------+------+----------- 2 | SESSION | postgres | 17542 | line 3, for i in 1..10 loop | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | 2 | SESSION | postgres | 17542 | line 4, insert into t1 values (1); | | | (11 rows) --关闭trace功能 gaussdb=# CALL dbe_perf.pl_trace_func_end(pg_current_sessid()); pl_trace_func_end ------------------- (1 row) --清理记录的数据 gaussdb=# CALL dbe_perf.pl_trace_info_clean(pg_current_sessid()); pl_trace_info_clean --------------------- (1 row)
父主题: trace存储过程执行的语句