sql_trace跟踪文件中名词简写说明

    SQL_trace是oracle提供的一个非常好的跟踪工具,主要用来检查数据库的异常情况,通过跟踪数据库的活动,找到有问题的语句。
一、概述:
    SQL_TRACE是Oracle的一个非常强大的工具。打开SQL_TRACE就可以逐步捕获任何一个会话的数据库活动,或者捕获整个数据库的活动,并将数据库活动记录成跟踪文件。每次使用完之后需要关闭跟踪,否则会降低系统的性能。
    SQL_TRACE可以帮助诊断许多问题,其中包括:
二、用法:
   1、文件跟踪的分类:
      跟踪DBA可以采用两种方式进行跟踪:
      a.跟踪整个数据库实例。
     只需要简单的修改参数文件(pfile/spfile)参数 SQL_TRACE = TRUE ,然后重新启动数据库即可。在全局启用SQL_TRACE会导致所有进程的活动被跟踪,包括后台进程及所有用户进程,这样也会数据库导致性能下降比较明显。
      b.会话级跟踪。
     SQL_TRACE的通常使用方式是仅跟踪一个会话。被跟踪的会话可以是您自己的,也可以是其它用户的会话。如果是自己的会话,只需要在SQL*PLUS中运行一下命令即可:
      SQL> alter session set sql_trace = true;
      类似的如果取消对会话的跟踪,运行一下命令:
      SQL> alter session set sql_trace = false;
     
      如果需要跟踪一个特定的会话,首先需要获取会话的SID和Serial#,这些信息可以在视图V$SESSION中获得,一旦知道了这两个参数,就可以运行一下命令:
      SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,true);
      同样也可以使用这个过程关闭会话跟踪:
     SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,false);
    
    可以批量生成启用脚本语句:
     SELECT username,
       sid,
       serial#,
       program,
       'exec sys.dbms_system.set_sql_trace_in_session(' || sid || ',' ||
       serial# || ',true);'
  FROM v$session a
 WHERE a.username = 'SPCS_WMS_SH'
   AND module = 'JDBC Thin Client';

  2、跟踪文件的位置:
     一旦为会话激活了SQL_TRACE,ORACLE就会在udump管理区创建跟踪文件,文件的目标位置由参数user_dump_dest来确定。每个操作都不会覆盖原来的文件,新的跟踪记录将会被追加到文件末尾。通常情况下,可以通过以下SQL来确定文件名:    
    SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
       p.spid || '.trc' trace_file_name
  FROM (SELECT p.spid
          FROM sys.v$mystat m, sys.v$session s, sys.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 sys.v$parameter WHERE NAME = 'user_dump_dest') d;
 
 3、计时信息:
    为了最大限度的利用跟踪文件,应该打开计时标志,通过参数TIMED_STATISTICTS=TRUE进行设置,这样可以对每个SQL语句的执行时间等进行记录,这个功能对系统性能的负担很小。
    打开会话的计时信息:
    SQL> alter session set timed_statistics = true ;
    打开数据库系统的计时信息
    SQL> alter system set timed_statistics = true ;
 
 4、TKPROF:
    通过前三步的设置已经知道如何生成SQL跟踪文件了,ORACLE生成的跟踪文件阅读起来很困难(也就是易读性很差)。ORACLE提供了一个格式化跟踪文件的工具 - TKPROF( Transient Kernel Profiler ),通过这个工具能将SQL文件转化为分析人员容易理解的格式。
   
    一般TKPROF工具的使用的简单方法,只用到了两个关键字:跟踪文件名和输出文件名 (TKPROF的具体请参阅其他资料):
    TKPROF
   
   通过设置tkprof的关键字[EXPLAIN = ],也可以在跟踪文件中增加SQL语句的执行计划:
  C:>tkprof D:oracleadminora9iudumpora9i_ora_2060.trc d:report.txt explain=test/test;  
  
跟踪原文件内容:
PARSING IN CURSOR #140526285366352 len=34 dep=1 uid=90 oct=3 lid=90 tim=1417657718956666 hv=1291129642 ad='ff3fd770' sqlid='37cvw956ga4ta'
SELECT PROJECT_ID FROM WM_IN_ORDER
END OF STMT
PARSE #140526285366352:c=0,e=78,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=3568243417,tim=1417657718956664
EXEC #140526285366352:c=0,e=53,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=3568243417,tim=1417657718956839
WAIT #140526285366352: nam='Disk file operations I/O' ela= 108 FileOperation=2 fileno=4 filetype=2 obj#=79237 tim=1417657718962499
WAIT #140526285366352: nam='direct path read' ela= 208 file number=4 first dba=8515 block cnt=5 obj#=79237 tim=1417657718962796
WAIT #140526285366352: nam='direct path read' ela= 125 file number=4 first dba=141248 block cnt=8 obj#=79237 tim=1417657718963055
FETCH #140526285366352:c=6000,e=6234,p=13,cr=4,cu=0,mis=0,r=1,dep=1,og=1,plh=3568243417,tim=1417657718963181
STAT #140526285366352 id=1 cnt=1 pid=0 pos=1 obj=79237 op='TABLE ACCESS FULL WM_IN_ORDER (cr=4 pr=13 pw=0 time=6225 us cost=2081 size=927160 card=231790)'
CLOSE #140526285366352:c=1000,e=188,dep=1,type=3,tim=1417657718963433
EXEC #140526285378960:c=7000,e=7022,p=13,cr=4,cu=0,mis=0,r=1,dep=0,og=1,plh=0,tim=1417657718963470
WAIT #140526285378960: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=79237 tim=1417657718963544

跟踪跟踪文件中名词简写说明:
tim--time
ela--elapsed time (微秒单位)
r---rows
cr--consistent read
obj#--object_id

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29439655/viewspace-1356086/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29439655/viewspace-1356086/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值