技术开发 频道

Oracle内部函数调用追踪器

    【IT168 技术文章】警告:本工具目前为beta版,可能会造成系统出现不可预知的异常,切勿在任何重要环境中运行!

  基于以前开发的一个用于监控线程的CPU使用状况的小工具,TopShow,我开发了一个用于追踪Oracle内部函数调用的追踪器——OraTracer. 你可以用该工具追踪监控Oracle多个内部函数的调用情况,还可以尝试探测函数的输入参数的值,也可以打印追踪点被触发时的调用堆栈。追踪可以设置在整个Oracle进程的级别,也可以设置在某个线程以追踪特定的会话。

  例子 1:
  捕获oracle整个实例中被执行的SQL语句。
    首先,在与可执行文件相同的目录下设置追踪点文件"TracePoints.txt",内容如下:

_opiprs 6*1    
_rpisplu
6*2    
_kprbprs
6  

   与函数名用空格相隔的数值为探测的参数数量,如果再加上"*N",则表示尝试将双字节数字作为指针对待,递归获取其执行的值,后面的数字为递归深度。例如,对于第一个追踪点,函数名为"_opiprs",探测6个参数,递归探测指针数据的深度为1。

  注意:"#"为注释符。

  然后从进程列表中选择"ORACLE.EXE",不要选择任何线程:

 

0
相关文章