工具04_SQL Trace/DBMS_SYSTEM

2014-06-25 Created By BaoXinjianweb

1、摘要sql


SQL TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具。在平常的数据库问题诊断和解决中,SQL TRACE是很是经常使用的方法。数据库

通常,一次跟踪能够分为如下几步:session

1. 界定须要跟踪的目标范围,并使用适当的命令启用所需跟踪。工具

2. 通过一段时间后,中止跟踪。此时应该产生了一个跟踪结果文件。spa

3. 找到跟踪文件,并对其进行格式化,而后阅读或分析。3d

另文已介绍了其余的跟踪工具DBMS_PROFILER, Form Trace, Request Trace等code

 

2、明细分析orm


案例: 跟踪本身的Session中的SQL操做ci

Step1. 查询本身Session的SID和Serial#

Step2. 启动 SQL Trace节点

begin
  dbms_system.set_SQL_TRACE_in_session(497,13413,true);
end;

 Step3. 在启动SQL Trace节点中后,进行SQL操做,系统会自动记录该Session中全部的SQL操做记录,直相当闭

Step4. 关闭 SQL Trace节点

begin
  dbms_system.set_sql_trace_in_session(497,13413,false);
end;

Step5. 查看所产生的Trace文件目录


    
    
    
    
SELECT d.VALUE || '' || LOWER(RTRIM(i.instance, CHR(0))) || '_ora_' || p.spid || '.trc' trace_file_name FROM (SELECT p.spid FROM v$sesstat m, v$session s, v$process p WHERE m.statistic# = 1 AND s.sid = m.sid AND p.addr = s.paddr AND s.sid = 581) p, (SELECT t.instance FROM v$thread t, 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;

Step6. Download该trace

Step7. 在该Trace文件中,能够找到SQL Trace启动和关闭节点之间的SQL,以下图

Step8. 以后也可经过格式化工具tkprof将Trace文件进行格式转化,变成易读文件

tkprof VIS_ora_18295.trc VIS_ora_18295.prf EXPLAIN=jvi2/jvi2_dev SYS=NO SORT=EXECPU,FCHCPU

此步另文已介绍,略过

 

Thanks and Regards



相关文章
相关标签/搜索