更新时间: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)

相关文档