sql_trace和tkprof工具

    当我们想了解一条sql的运行情况时,尤其是性能比较差的时候,就可以通过使用sql_trace来跟踪sql的执行计划,这个工具会将sql的整个过程输出到一个trace文件中,我们就能很容易的知道当前正在执行的sql究竟在做什么。

    A:开启当前用户会话的跟踪:

          alter session set sql_trace=true;

    B:开启指定用户会话的跟踪

          Select sid,serial#,username from v$session;--查看所有会话的情况

          记下要跟踪用户的sid,serial#,例如某个用户的sid是526,serial#是190

          execute dbms_system.set_sql_trace_in_session(526,190,true);

         关闭指定用户会话的跟踪

         execute dbms_system.set_sql_trace_in_session(526,190,false);

    C:找到产生的追踪文件

          select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' || p.spid || '.trc' trace_file_name
          from (select p.spid
                      from v$mystat m, v$session s, v$process p
                   where m.statistic# = 1
                      and s.sid = m.sid
                      and p.addr = s.paddr) p,
                  (select t.instance
                     from sys.v$thread t, sys.v$parameter v
                  where v.name = 'thread'
                     and (v.value = 0 or t.thread# = to_number(v.value))) i,
                 (select value from v$parameter where name = 'user_dump_dest') d

         文件目录:e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6920.trc

          但是udump目录下trc跟踪文件打开后发现信息很乱,不能很快的得到有效信息,我们可以使用tkprof工具使跟踪信息更加条理方便阅读

    D:下面是tkprof的命令行

           tkprof e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6920.trc   e:\out.txt

           然后去e:\目录下打开out.txt文件即可

          

         




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值