Oracle内部函数调用追踪器

文章作者 100test 发表时间 2011:03:17 19:33:59
来源 100Test.Com百考试题网


  基于以前开发的一个用于监控线程的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”,不要选择任何线程:

  最后,点击”Trace”按钮。一旦有语句被上述函数调用,你就可以从监控窗口看到这些语句:

  SQL代码

  …

  [2010-5-28 3:53:23.426]User call: _rpisplu (TID: 5276)

  [Args(6)]:

  6

  0

  0

  “0select privilege#,level from sysauth$ connect by grantee#=prior privilege# and privilege#


相关文章


常用的SQL注射语句解析
解析delta得到sql语句的函数
OracleGoldenGate备份软件
Oracle导出SQL脚本的spool实现
Oracle内部函数调用追踪器
OracleSQL精妙SQL语句讲解
事务队列等待深入分析:索引争用
Oracle数据库操作存储
oracle中imp命令详解
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛