
# 技术原理
#### 核心机制
trace存储过程中正在执行的语句的实现依赖于存储过程期间设置的回调函数，完成语句和统计信息的记录与收集。在存储过程执行前，执行dbe_perf.pl_trace_func_start接口，数据库会设置trace参数以及回调函数，启用trace功能；存储过程执行期间，语句前后的回调函数会把相应语句的记录和信息存放到链表中；存储过程执行完成后，调用dbe_perf.pl_trace_func_end接口，清理trace参数，关闭trace功能；调用dbe_perf.pl_get_trace_info接口，从链表中读取数据并展示信息。
#### 性能指标
DBE_PERF.pl_trace_func_start函数参数max_num控制本次trace记录的最大信息数量，取值范围100\~10000，该参数值为10000情况下，性能劣化在5%左右。
#### 接口介绍
| trace存储过程执行语句支持的接口                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ||
|:---|---|
| 函数 | - DBE_PERF.PL_TRACE_FUNC_START(session_id, max_num, level, threshold)函数 用于开启trace功能。  - DBE_PERF.PL_TRACE_FUNC_END(session_id) 函数用于关闭trace功能。  - DBE_PERF.PL_TRACE_FUNC_CLEAN(session_id) 函数用于清理记录的trace信息。  - DBE_PERF.PL_GET_TRACE_INFO(session_id, level, database, func, source, plan, time, threshold) 函数用于查看记录的trace信息。   |
   
