Oracle SQL语句追踪

2015-07-16 12:08:53 · 作者: · 浏览: 1

1? SQL语句追踪


  首先要追中SQL语句,我们需要确定追踪客户端进程的会话ID,下面命令枚举了当前服务器所有访问进程会话ID和串口,然后选择需要检测的会话ID和串口。


Select username, sid, serial# from v$session where username is not null;


  然后针对选中的会话ID和串口进行SQL语句追踪,如下命令所示。


EXECUTE sys.dbms_system.set_sql_trace_in_session(10,? 2642, TRUE);


  开始追踪SQL语句后,我们可以在客户端进行操作,而这些操作过程使用的SQL语句都将被记录下来,直到我们结束SQL语句追踪。


  最后客户端操作完成之后,使用下面命令便可以结束SQL语句追踪。


EXECUTE sys.dbms_system.set_sql_trace_in_session(10,? 2642, FALSE);


  追中结束后Oracle服务端文件夹下会产生一个最新的.trc后缀的文件,我们可以使用Search Everything工具查找最近时间生产的.trc文件,然后使用tkprof工具对该文件进行解析。


2 TRC文件解析


  解析生成的.trc文件,需要使用tkprof工具,该工具有非常多的复杂参数可供使用,如果不做复杂要求,可以使用下面简单的命令将.trc文件输出成文本文件。


  解析命令如下:


tkprof sqlplus_007.trc out.txt


    sqlplus_007.trc为数据追踪文件


    out.txt 为输出格式化文件


  打开out.txt文件,便可以查阅到SQL语句的执行情况。