服务于区块链开拓者

www.zhidnet.com

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

直接开启数据库实例级别的sql_trace是不现实的,会对所有连接到oracle的session都产生sql_trace,这样会产生大量的trace文件(垃圾文件),因此为跟踪特定进程的sql信息,可以对特点进程产生sql_trace文件,步骤如下:

1、获取sender进程的sid,serial#,spid

select a.process,a.program,a.saddr,a.sid,a.serial#,a.paddr,b.spid,b.username,b.program

 from v$session a,v$process b

 where a.paddr=b.addr

 and a.program like 'sender%'

 and a.osuser='dsg'

 order by 1;

漫兮网 - 服务于区块链创业者、技术人和站长的网站http://www.manxinet.com

2、开启sender进程的sql_trace跟踪

SQL> alter session set sql_trace = true;

SQL> exec SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION =(SID,SERIAL#,TRUE);

注:必须产生新交易以后才能生成trace文件,即sender进程必须有事物发生才能产生对应的sql_trace文件

漫兮网 - 服务于区块链创业者、技术人和站长的网站http://www.manxinet.com

3、关闭sender进程的sql_trace跟踪

追踪一段时间的sql以后,切忌不要忘记关闭sender进程的sql_trace 

SQL> exec SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION =(SID,SERIAL#,FALSE);

 

4、使用tkprof格式化trace文件  

posted on 2019-08-16 19:09  知点网  阅读(207)  评论(0编辑  收藏  举报