更新时间:2026-07-28 GMT+08:00
特性概述
功能定义
505.0 版本以后,支持了DBE_PROFILER高级包,支持用户对目标存储过程进行profiling,以存储过程为单位,向使用者提供一个方便、直观、友好的界面去识别存储过程执行期间各个语句产生的消耗。
用户场景
在识别到慢语句是被哪个存储过程调用的情况下,只想确认存储过程内每个语句执行耗时信息,可以借由plprofiler工具实现。
规格约束
- DBE_PROFILER.PL_START_PROFILING不支持在存储过程内使用,在存储过程内调用不生效;
- DBE_PROFILER.PL_START_PROFILING不支持事务失败记录统计信息到系统表;
- DBE_PROFILER.PL_START_PROFILING入参RUNID长度限制为64字节,超长将会报错;
- DBE_PROFILER.PL_START_PROFILING入参如果和PROFILER系统表内的RUNID重复将会报错;
- PLPROFILER不支持匿名块语句、PACKAGE的初始化语句和嵌套子程序内的语句;
- DBE_PROFILER.PL_PROFILING_FUNCTIONS、DBE_PROFILER.PL_PROFILING_DETAILS、DBE_PROFILER.PL_CALLGRAPH、DBE_PROFILER.PL_PROFILING_TRACKINFO表普通用户可以访问,仅具有查询记录权限;
- DBE_PROFILER集中式不支持记录自治事务中语句。
- DBE_PROFILER最多可以记录嵌套层数不超过500层的存储过程,但是由于系统表DBE_PROFILER.PL_PROFILING_CALLGRAPH中stack列受索引长度最大值的影响,以及存储过程嵌套深度受GUC参数max_stack_depth的影响,实际最多可记录的存储过程嵌套层数会小于500层。
技术架构
DBE_PROFILER工具可以用来统计存储过程和存储过程内语句的执行时间,实现是依赖在存储过程、存储过程内语句执行前后添加回调函数,实现执行时间、调用栈信息的记录。
父主题: DBE_PROFILER工具