您的位置:首页 > 数据库

sql_trace和tkprof工具

2014-10-19 17:55 441 查看
当我们想了解一条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文件即可




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: