精华内容
下载资源
问答
  • Oracle Trace文件生成及查看

    千次阅读 2018-12-12 11:03:48
    Oracle Trace文件生成及查看 Oracle查看trace文件步骤 Oracle-trace文件分析 Trace 文件具体解析 转载https://blog.csdn.net/weiwenhp/article/details/6932835 Oracle Trace文件生成及查看 1.Trace file简介:...

    目录

    Oracle Trace文件生成及查看

    Oracle查看trace文件步骤

    Oracle-trace文件分析

    Trace 文件具体解析


    转载https://blog.csdn.net/weiwenhp/article/details/6932835

    Oracle Trace文件生成及查看

    1.Trace file简介:
    Trace file(追踪文件)是以trc为后续的文本文件,它记录了各种sql操作及所消耗的时间等,根据trace文件我们就可以了解哪些sql导致了系统的性能瓶颈,进而采取恰当的方式调优.

    2.怎么生成trace file:
    1. 首先用sqlplus登陆Oracle.

    show parameter sql_trace
    
    Name          Type        Value
    
    -------------------------------------------
    
    sql_trace     boolean      false

    如果value是false表示系统当前不会产生trace文件.采取如下操作让系统产生trace文件:

    alter session set sql_trace=true;

    或者:alter system set sql_trace=true;

    2.执行一些sql语句后.停止产生trace文件.alter session(或system)  set sql_trace=false.

    3.trace文件所在的默认路径.

    SELECT VALUE  FROM V$PARAMETER WHERE NAME = 'user_dump_dest'

    我本机的查找结果是:C:\ORACLE\PRODUCT\10.2.0\ADMIN\ORA102\UDUMP.

    3.怎么更改trace文件的保存目录:
    如果是oracle 11g 以下的版本则:

    alter system set user_dump_dest = 'd:\oracle\trace';

    (注意:trace文件就直接生成在trace目录下)

    如果是oracle 11g.则

    alter system set user_diagnostic_dest = 'd:\oracle\trace';

    (注意:trace文件不会直接生成在trace目录下.trace目录下会生成其他很多目录.

    trace文件的具体目录是:d:\oracle\trace\diag\rdbms\orli11r2\orli11r2\trace.其中的orli11r2是SID)

    4.怎么查看trace文件:
    如果直接看trace文件是很难看懂的.就是下面的样子(我只是随便复制一段):

    1319423003070764
    =====================
    PARSING IN CURSOR #2 len=90 dep=1 uid=0 oct=3 lid=0 tim=1319423003070864 hv=673844243 ad='7ecb9458' sqlid='9g485acn2n30m'
    select col#,intcol#,reftyp,stabid,expctoid from refcon$ where obj#=:1 order by intcol# asc
    END OF STMTPARSE #2:c=0,e=56,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,plh=2544153582,tim=1319423003070864
    BINDS #2: Bind#0oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
      oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0 kxs

    我们可以用oracle自带的工具TKPROF转化后再查看trace文件.转化后是下面的样子:

    SQL ID : 0zzk39z279q41
    SELECT version 
    FROM
    product_component_version WHERE product LIKE 'Oracle%'
    
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        1      0.00       0.00          0          0          0           1
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        3      0.00       0.00          0          0          0           1
    
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 69 
    
    Rows     Row Source Operation
    -------  ---------------------------------------------------
          1  VIEW  PRODUCT_COMPONENT_VERSION (cr=0 pr=0 pw=0 time=0 us cost=2 size=168 card=2)
          1   SORT UNIQUE (cr=0 pr=0 pw=0 time=0 us cost=2 size=110 card=2)
          1    UNION-ALL  (cr=0 pr=0 pw=0 time=0 us)
          0     FIXED TABLE FULL X$VERSION (cr=0 pr=0 pw=0 time=0 us cost=0 size=55 card=1)
          1     FIXED TABLE FULL X$VERSION (cr=0 pr=0 pw=0 time=0 us cost=0 size=55 card=1)
    
    ********************************************************************************


    --------------------- 
    作者:聪明的笨蛋 
    来源:CSDN 
    原文:https://blog.csdn.net/weiwenhp/article/details/6932835 
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

    Oracle查看trace文件步骤

    https://www.2cto.com/database/201210/159305.html

     

    1.获得当前trace文件生成路径

    SQL> select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));

     

    TRACEFILE  www.2cto.com  

    -------------------------------------------------------------------------------------------------------------------------------

    f:\oracle\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1160.trc

     

    2.开启当前session的trace

    SQL> alter session set sql_trace=true;

    SQL> select count(*) from t1;

     

    3.转换trc文件内容为可读的输出结果

     

    C:\Documents and Settings\Administrator>tkprof f:\oracle\administrator\diag\rdbm

    s\orcl\orcl\trace\orcl_ora_1160.trc output=c:\aa.txt

     

    TKPROF: Release 11.2.0.1.0 - Development on 星期六 10月 6 23:51:07 2012

    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

     

    4.打开c:\aa.txt, 就会看到关于SQL语句 ‘ select count(*) from t1;’ 的执行计划

    [sql] 

    ********************************************************************************  

    SQL ID: 5bc0v4my7dvr5  

    Plan Hash: 3724264953  

    select count(*)  

    from    www.2cto.com  

     t1  

      

    call     count       cpu    elapsed       disk      query    current        rows  

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------  

    Parse        1      0.00       0.04          0          1          0           0  

    Execute      1      0.00       0.00          0          0          0           0  

    Fetch        2      0.03       0.01          0       1070          0           1  

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------  

    total        4      0.03       0.06          0       1071          0           1  

      

    Misses in library cache during parse: 1  

    Optimizer mode: ALL_ROWS  

    Parsing user id: 91    

      

    Rows     Row Source Operation  

    -------  ---------------------------------------------------  

          1  SORT AGGREGATE (cr=1070 pr=0 pw=0 time=0 us)  

      72597   TABLE ACCESS FULL T1 (cr=1070 pr=0 pw=0 time=172543 us cost=298 size=0 card=66014)  

        www.2cto.com  

    ******************************************************************************** 

    Oracle-trace文件分析

    https://blog.csdn.net/boer521314/article/details/48734689

    Trace 文件具体解析

     

    转载https://www.2cto.com/database/201408/326439.html

    下面是trace文件中的一个片段,表示一个SQL执行的过程,一个trace文件由很多这样的片段组成:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    PARSING IN CURSOR #4 len=135 dep=1 uid=0 oct=3 lid=0 tim=777069789359 hv=1115215392 ad='33e7e384'

    select /*+ index(idl_char$ i_idl_char1) +*/ piece#,length,piece from idl_char$ where obj#=:1 and part=:2 and version=:3 order by piece#

    END OF STMT

    PARSE #4:c=0,e=12,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=777069789357

    --BINDS #2:

    EXEC #4:c=0,e=14,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=777069789415

    --WAIT #2: nam='SQL*Net message from client' ela= 143 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=775454461373

    FETCH #4:c=0,e=18,p=0,cr=4,cu=0,mis=0,r=1,dep=1,og=4,tim=777069789450

    FETCH #4:c=0,e=5,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim=777069789477

    STAT #4 id=1 cnt=1 pid=0 pos=1 obj=74 op='TABLE ACCESS BY INDEX ROWID IDL_CHAR$ (cr=4 pr=0 pw=0 time=20 us)'

    STAT #4 id=2 cnt=1 pid=1 pos=1 obj=115 op='INDEX RANGE SCAN I_IDL_CHAR1 (cr=3 pr=0 pw=0 time=12 us)'

    以"--"开头是人为添加的,在其它查询中可能存在,下面关键字段的含义:
    1)PARSING IN CURSOR和END OF STMT包含了SQL语句文本;
    2)PARSE、EXEC和FETCH分别表示解析(parse)、执行(execution)和获取(fetch)调用;
    3)BINDS表示绑定变量的定义与值;
    4)WAIT表示在处理过程汇总发生的等待事件;
    5)STAT表示产生的执行计划以及相关的统计。
    下面是更细致的一些解释(来自:Interpreting Raw SQL_TRACE and DBMS_SUPPORTSTART_TRACE output),由于Oracle每个版本都有差异,所以这些内容仅供参考。

    -------------------------------------------------------------------------
    PARSING IN CURSOR # len=X dep=X uid=X oct=X lid=X tim=X hv=X ad='X' 
    SQL语句
    END OF STMT
    --------------------------------------------------------------------------
    len:SQL语句长度
    dep:游标递归调用的深度
    uid:分析SQL的用户ID
    oct:ORACLE命令类型
    lid:特权用户id
    tim:时间抽。ORACLE 9i以前,单位仅仅为1/100秒;ORACLE 9i之后单位为1/1000000秒。时间戳可以用来决定两点之间的时间间隔。该数值取自v$timer中的数值,可以用2个操作的'tim'差决定绝对时间
    hv:SQL HASH ID(对应V$SQLAREA视图和V$SQLTEXT视图的HASH_VALUE字段)
    ad:SQLTEXT地址(对应V$SQLAREA视图和V$SQLTEXT视图的ADDRESS字段)

    --------------------------------------------------------------------------
    PARSE ERROR #%d:len=%ld dep=%d uid=%ld oct=%d lid=%ld tim=%lu err=%d
    SQL语句
    --------------------------------------------------------------------------
    len:SQL语句长度
    dep:游标递归调用的深度
    uid:分析SQL的用户ID
    oct:ORACLE命令类型
    tim:时间抽。同上
    err:Oracle错误代码(e.g.ORA-XXXXX)

    --------------------------------------------------------------------------
    PARSE #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0 
    EXEC #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0 
    FETCH #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0 
    UNMAP #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0 
    --------------------------------------------------------------------------
    操作:
    1)PARSE:解析SQL
    2)EXEC:执行已经分析的SQL
    3)FETCH:从游标中获取记录
    4)UNMAP:如果游标使用了临时表,当游标关闭的时候,该操作用来释放临时表资源(释放锁、删除状态对象、释放临时段等)。在tkprof产生的报告中,UNMAP的统计信息加入到EXECUTE操作的统计信息中。
    5)SORT UNMAP:如上类似,但是为OS文件排序或者TEMP表段(segment)

    c:CPU time(1/100秒在Oracle7、8和9)
    e:Elapsed time(1/100秒在Oracle7、8,微秒在Oracle 9和之后版本)
    p:物理读(Number of physical reads)
    cr:CR(consistent read,一致性读)读的数量
    cu:在当前模式(current mode)下读的数量
    mis:cursor在缓存中错过的数量
    r:涉及的记录数量
    dep:递归调用深度(0 = user SQL,>0 = recursive)
    og:优化器模式:1=All_Rows,2=First_Rows,3=Rule,4=Choose
    tim:时间戳,用于确定两个操作之间的时间

    --------------------------------------------------------------------------
    ERROR #%d:err=%d tim=%lu
    --------------------------------------------------------------------------
    一个execution或者tetch错误后的错误展示
    err:在堆栈顶的Oracle错误码(例如:ORA-XXXX)
    tim:时间戳

    --------------------------------------------------------------------------
    STAT #<CURSOR> id=N cnt=0 [pid=0 pos=0 obj=0 op='SORT AGGREGATE '] 
    --------------------------------------------------------------------------
    STAT:为<CURSOR>的执行计划统计报告
    <CURSOR>:统计应用到的Cursor
    id:执行计划中个操作在执行计划树中的编号
    cnt:涉及的行数
    pid:这行的父id
    pos:在执行计划中的位置
    obj:行的对象id(如果这是一个基本对象)
    op:行涉及的操作

    --------------------------------------------------------------------------
    XCTEND rlbk=%d rd_only=%d 
    --------------------------------------------------------------------------
    XCTEND:事务结束标志
    rlbk:1表示rollback,0表示commit
    rd_only:事务只读则是1,写则是0

    注:下面的只有当WAITS或者BINDS出现时才存在

    --------------------------------------------------------------------------
    BINDS #%d: 
    bind 0: dty=2 mxl=22(22) mal=00 scl=00 pre=00 oacflg=03 oacfl2=0 size=24 offset=0
    bfp=02fedb44 bln=22 avl=00 flg=05 
    value=10 
    --------------------------------------------------------------------------
    BIND:游标绑定变量

    bind N:绑定变量位置
    dty:数据类型
    mxl:绑定变量最大长度
    mal:数组长度
    scl:规模(Scale)
    pre:进度(precision)
    oacflg:表明绑定选项的特定标志
    oacfl2:oacflg的延续
    size:为这块分配的内存
    offset:为这个绑定缓存进入这块的偏移量

    bfp:绑定地址
    bln:绑定缓存长度
    avl:实际值长度(也是数组长度)
    flg:表明绑定状态的特定标志
    value:绑定变量的实际值

    --------------------------------------------------------------------------
    WAIT #<CURSOR>: nam="" ela=0 p1=0 p2=0 p3=0 
    --------------------------------------------------------------------------
    WAIT:等待事件信息
    nam:等待事件名称
    ela:操作花费的时间
    p1:为等待事件提供的参数p1
    p2:为等待事件提供的参数p2
    p3:为等待事件提供的参数p3

    Example (Full Table Scan): 
    WAIT #1: nam="db file scattered read" ela= 5 p1=4 p2=1435 p3=25 
    WAITing under CURSOR no 1 
    for "db file scattered read" 
    解读:我们等待0.05秒。为一个读:文件4,开始块1435,共25块 

    Example (Index Scan): 
    WAIT #1: nam="db file sequential read" ela= 4 p1=4 p2=1224 p3=1 
    WAITing under CURSOR no 1 
    for "db file sequential read" 
    解读:我们等待0.04秒,为单块读(p3=1),从文件4,开始块1224

    展开全文
  • 如何查看oracle trace 文件

    千次阅读 2016-03-24 12:45:01
    获得当前trace文件生成路径 SQL> select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat)); 开启当前session的trace SQL> alter ...

    获得当前trace文件生成路径

    SQL> select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));

    开启当前session的trace

    SQL> alter session set sql_trace=true;

    转换trc文件内容为可读的输出结果 (trace文件存放在F盘)

    C:\Documents and Settings\Administrator>tkprof f:\oracle\administrator\diag\rdbm

    s\orcl\orcl\trace\orcl_ora_1160.trc output=c:\aa.txt

    转换的trc文件包含sql执行计划 (trace文件存放在D盘根目录)

    C:\Documents and Settings\Administrator>tkprof d:\gdprd_ora_9120_htmlpkg.trc 

    output=d:\htmlpkg.txt explain=apps/apps@dev3 sys=no


    展开全文
  • Oracle Trace文件生成及TKPROF格式化查看 实例

    1。登录sqlplus

    2。执行

    --使用tkprof工具分析oracle trace跟踪文件
    alter system set timed_statistics=true scope=both;
    --设置trace文件的信息生成
    alter session set sql_trace = true;

    --查看trace生成的目录

    show parameter user_dump_dest;

    3。执行SQL:
    select t1.empno, t1.ename, t2.deptno, t2.dname from emp  t1, dept t2 where  t1.deptno = t2.deptno(+);


    select t1.empno, t1.ename, t2.deptno, t2.dname from emp  t1, dept t2 where  t1.deptno = t2.deptno;

    --这里选择关闭trace信息生成

    alter session set sql_trace = false;

    4.退出sqlplus


    5。 在trace生成目录下,执行TKPROF格式化语句

    TKPROF orcl_ora_1200.trc , TRC_ORA_1200.TXT SORT = PRSELA,EXEELA,FCHELA PRINT = 2 EXPLAIN = SH/SH  ;


    trc文件内容:

    Dump file d:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_1200.trc
    Thu Apr 14 12:38:02 2016
    ORACLE V10.2.0.1.0 - Production vsnsta=0
    vsnsql=14 vsnxtr=3
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    Windows XP Version V5.1 Service Pack 3
    CPU                 : 2 - type 586, 2 Physical Cores
    Process Affinity    : 0x00000000
    Memory (Avail/Total): Ph:604M/2008M, Ph+PgF:2247M/3901M, VA:1284M/2047M
    Instance name: orcl

    Redo thread mounted by this instance: 1

    Oracle process number: 19

    Windows thread id: 1200, image: ORACLE.EXE (SHAD)


    *** 2016-04-14 12:38:02.515
    *** ACTION NAME:() 2016-04-14 12:38:02.500
    *** MODULE NAME:(SQL*Plus) 2016-04-14 12:38:02.500
    *** SERVICE NAME:(SYS$USERS) 2016-04-14 12:38:02.500
    *** SESSION ID:(149.241) 2016-04-14 12:38:02.500
    =====================
    PARSING IN CURSOR #1 len=34 dep=0 uid=54 oct=42 lid=54 tim=12281762464 hv=2069488880 ad='332ddb58'
    alter session set sql_trace = true
    END OF STMT
    EXEC #1:c=0,e=510,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=12281762456
    *** 2016-04-14 12:38:13.875
    =====================
    PARSING IN CURSOR #2 len=100 dep=0 uid=54 oct=3 lid=54 tim=12293142670 hv=1722633938 ad='2f8cd4d4'
    select t1.empno, t1.ename, t2.deptno, t2.dname from emp  t1, dept t2 where  t1.deptno = t2.deptno(+)
    END OF STMT
    PARSE #2:c=0,e=54,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=12293142664
    EXEC #2:c=0,e=55,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=12293144092
    FETCH #2:c=0,e=137,p=0,cr=9,cu=0,mis=0,r=1,dep=0,og=1,tim=12293144495
    FETCH #2:c=0,e=568,p=0,cr=15,cu=0,mis=0,r=13,dep=0,og=1,tim=12293145607
    STAT #2 id=1 cnt=14 pid=0 pos=1 obj=0 op='NESTED LOOPS OUTER (cr=24 pr=0 pw=0 time=135 us)'
    STAT #2 id=2 cnt=14 pid=1 pos=1 obj=51151 op='TABLE ACCESS FULL EMP (cr=8 pr=0 pw=0 time=246 us)'
    STAT #2 id=3 cnt=14 pid=1 pos=2 obj=51149 op='TABLE ACCESS BY INDEX ROWID DEPT (cr=16 pr=0 pw=0 time=472 us)'
    STAT #2 id=4 cnt=14 pid=3 pos=1 obj=51150 op='INDEX UNIQUE SCAN PK_DEPT (cr=2 pr=0 pw=0 time=200 us)'
    *** 2016-04-14 12:38:24.218
    =====================
    PARSING IN CURSOR #1 len=97 dep=0 uid=54 oct=3 lid=54 tim=12303478048 hv=3595513092 ad='33121eec'
    select t1.empno, t1.ename, t2.deptno, t2.dname from emp  t1, dept t2 where  t1.deptno = t2.deptno
    END OF STMT
    PARSE #1:c=15625,e=1375,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=12303478041
    EXEC #1:c=0,e=54,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=12303479513
    FETCH #1:c=0,e=125,p=0,cr=9,cu=0,mis=0,r=1,dep=0,og=1,tim=12303479929
    FETCH #1:c=0,e=574,p=0,cr=15,cu=0,mis=0,r=13,dep=0,og=1,tim=12303481045
    STAT #1 id=1 cnt=14 pid=0 pos=1 obj=0 op='NESTED LOOPS  (cr=24 pr=0 pw=0 time=120 us)'
    STAT #1 id=2 cnt=14 pid=1 pos=1 obj=51151 op='TABLE ACCESS FULL EMP (cr=8 pr=0 pw=0 time=263 us)'
    STAT #1 id=3 cnt=14 pid=1 pos=2 obj=51149 op='TABLE ACCESS BY INDEX ROWID DEPT (cr=16 pr=0 pw=0 time=471 us)'
    STAT #1 id=4 cnt=14 pid=3 pos=1 obj=51150 op='INDEX UNIQUE SCAN PK_DEPT (cr=2 pr=0 pw=0 time=199 us)'
    *** 2016-04-14 12:38:42.312
    XCTEND rlbk=0, rd_only=1



    TKPROF转换格式化的效果:


    TKPROF: Release 10.2.0.1.0 - Production on 星期四 4月 14 12:39:43 2016

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    Trace file: orcl_ora_1200.trc
    Sort options: prsela  exeela  fchela  
    ********************************************************************************
    count    = number of times OCI procedure was executed
    cpu      = cpu time in seconds executing
    elapsed  = elapsed time in seconds executing
    disk     = number of physical reads of buffers from disk
    query    = number of buffers gotten for consistent read
    current  = number of buffers gotten in current mode (usually for update)
    rows     = number of rows processed by the fetch or execute call
    ********************************************************************************

    error connecting to database using: ;
    ORA-01005: 给出空口令; 登录被拒绝

    EXPLAIN PLAN option disabled.
    ********************************************************************************

    select t1.empno, t1.ename, t2.deptno, t2.dname
    from
     emp  t1, dept t2 where  t1.deptno = t2.deptno


    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.01       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        2      0.00       0.00          0         24          0          14
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        4      0.01       0.00          0         24          0         14

    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 54  

    Rows     Row Source Operation
    -------  ---------------------------------------------------
         14  NESTED LOOPS  (cr=24 pr=0 pw=0 time=120 us)
         14   TABLE ACCESS FULL EMP (cr=8 pr=0 pw=0 time=263 us)
         14   TABLE ACCESS BY INDEX ROWID DEPT (cr=16 pr=0 pw=0 time=471 us)
         14    INDEX UNIQUE SCAN PK_DEPT (cr=2 pr=0 pw=0 time=199 us)(object id 51150)

    ********************************************************************************

    select t1.empno, t1.ename, t2.deptno, t2.dname
    from
     emp  t1, dept t2 where  t1.deptno = t2.deptno(+)


    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        2      0.00       0.00          0         24          0          14
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        4      0.00       0.00          0         24          0         14

    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 54  

    Rows     Row Source Operation
    -------  ---------------------------------------------------
         14  NESTED LOOPS OUTER (cr=24 pr=0 pw=0 time=135 us)
         14   TABLE ACCESS FULL EMP (cr=8 pr=0 pw=0 time=246 us)
         14   TABLE ACCESS BY INDEX ROWID DEPT (cr=16 pr=0 pw=0 time=472 us)
         14    INDEX UNIQUE SCAN PK_DEPT (cr=2 pr=0 pw=0 time=200 us)(object id 51150)




    ********************************************************************************

    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        2      0.01       0.00          0          0          0           0
    Execute      3      0.00       0.00          0          0          0           0
    Fetch        4      0.00       0.00          0         48          0          28
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        9      0.01       0.00          0         48          0          28

    Misses in library cache during parse: 1


    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        0      0.00       0.00          0          0          0           0
    Execute      0      0.00       0.00          0          0          0           0
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        0      0.00       0.00          0          0          0           0

    Misses in library cache during parse: 0

        3  user  SQL statements in session.
        0  internal SQL statements in session.
        3  SQL statements in session.
        0  statements EXPLAINed in this session.
    ********************************************************************************
    Trace file: orcl_ora_1200.trc
    Trace file compatibility: 10.01.00
    Sort options: prsela  exeela  fchela  
           1  session in tracefile.
           3  user  SQL statements in trace file.
           0  internal SQL statements in trace file.
           3  SQL statements in trace file.
           3  unique SQL statements in trace file.
          57  lines in trace file.
          21  elapsed seconds in trace file.


    下面列出一些tkprof生成文件中常看到的几个性能方面的数字:

    count:表示执行的数据库调用数量。

    cpu:表示处理数据调用花去的CPU时间,以秒为单位。

    elapsed:表示处理数据库调用花费的总时间,以秒为单位。

    disk:表示物理读的数据块数量。

    query:表示在consistent mode下从高速缓存逻辑读取的块数量。

    current:表示在当前模式下从高速缓存逻辑读取的块数量。

    rows:表示处理的数据行数量。

    ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************

    下面的测试数据:

    主要是测试全表扫描和索引扫描 性能。

     查看大量数据。还是要走全表扫描 效率快些。虽然CBO在一定数据还是走索引扫描,通过trace文件对比,就可以知全表扫描效率稍快些。


    TKPROF: Release 10.2.0.1.0 - Production on 星期四 4月 14 14:41:02 2016

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    Trace file: orcl_ora_8072.trc
    Sort options: prsela  exeela  fchela  
    ********************************************************************************
    count    = number of times OCI procedure was executed
    cpu      = cpu time in seconds executing
    elapsed  = elapsed time in seconds executing
    disk     = number of physical reads of buffers from disk
    query    = number of buffers gotten for consistent read
    current  = number of buffers gotten in current mode (usually for update)
    rows     = number of rows processed by the fetch or execute call
    ********************************************************************************

    error connecting to database using: SH/SH
    ORA-28000: the account is locked

    EXPLAIN PLAN option disabled.
    ********************************************************************************

    select *
    from
     t500w t where t.id <= 610000


    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.01          0          2          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch    40668      1.70       2.01       2609      83781          0      610000
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total    40670      1.70       2.02       2609      83783          0      610000

    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 54  

    Rows     Row Source Operation
    -------  ---------------------------------------------------
     610000  TABLE ACCESS BY INDEX ROWID T500W (cr=83781 pr=2609 pw=0 time=10405626 us)
     610000   INDEX RANGE SCAN IND_T500W (cr=41936 pr=1348 pw=0 time=2459859 us)(object id 53750)

    ********************************************************************************

    select *
    from
     t500w t where t.id <= 620000


    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.04          0          2          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch    41335      1.00       1.59       9956      52720          0      620000
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total    41337      1.00       1.63       9956      52722          0      620000

    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 54  

    Rows     Row Source Operation
    -------  ---------------------------------------------------
     620000  TABLE ACCESS FULL T500W (cr=52720 pr=9956 pw=0 time=2481416 us)




    ********************************************************************************

    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse       11      0.01       0.05          0          8          0           0
    Execute     12      0.00       0.00          0          9          5           5
    Fetch    82011      2.73       3.61      12565     136501          0     1230036
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total    82034      2.75       3.67      12565     136518          5     1230041

    Misses in library cache during parse: 4


    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse       18      0.01       0.00          0          0          0           0
    Execute     24      0.01       0.00          0          2         23           5
    Fetch       22      0.12       0.11          0        336         34          53
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total       64      0.15       0.12          0        338         57          58

    Misses in library cache during parse: 2
    Misses in library cache during execute: 2

       28  user  SQL statements in session.
        3  internal SQL statements in session.
       31  SQL statements in session.
        0  statements EXPLAINed in this session.
    ********************************************************************************
    Trace file: orcl_ora_8072.trc
    Trace file compatibility: 10.01.00
    Sort options: prsela  exeela  fchela  
           5  sessions in tracefile.
          70  user  SQL statements in trace file.
           7  internal SQL statements in trace file.
          31  SQL statements in trace file.
          17  unique SQL statements in trace file.
       82327  lines in trace file.
          55  elapsed seconds in trace file.





    参考:

    http://blog.csdn.net/weiwenhp/article/details/6932835

    http://yedward.net/?id=140

    展开全文
  • Oracle Trace文件

    2013-07-09 14:00:54
    Trace file(追踪文件)是以trc为后续的文本文件,它记录了各种sql操作及所消耗的时间等,根据trace文件我们就可以了解哪些sql导致了系统的性能瓶颈,进而采取恰当的方式调优. 2.怎么生成trace file: 1. 首先用...

    1.Trace file简介:

    Trace file(追踪文件)是以trc为后续的文本文件,它记录了各种sql操作及所消耗的时间等,根据trace文件我们就可以了解哪些sql导致了系统的性能瓶颈,进而采取恰当的方式调优.

    2.怎么生成trace file:

    1. 首先用sqlplus登陆Oracle.

    show parameter sql_trace

    Name         Type        Value

    -------------------------------------------

    sql_trace    boolean      false

    如果value是false表示系统当前不会产生trace文件.采取如下操作让系统产生trace文件:

    alter session set sql_trace=true;

    alter system set sql_trace=true;

    2.执行一些sql语句后.停止产生trace文件.

    alter session set sql_trace=false;

    alter system set sql_trace= false;

    3.trace文件所在的默认路径.

    SELECT VALUE  FROM V$PARAMETER WHERE NAME ='user_dump_dest';

    3.怎么更改trace文件的保存目录:

    如果是oracle 11g 以下的版本则:

    alter system set user_dump_dest = 'd:\oracle\trace';

    (注意:trace文件就直接生成在trace目录下)

    如果是oracle 11g.则

    alter system set user_diagnostic_dest ='d:\oracle\trace';

    (注意:trace文件不会直接生成在trace目录下.trace目录下会生成其他很多目录.

    trace文件的具体目录是:d:\oracle\trace\diag\rdbms\orli11r2\orli11r2\trace.其中的orli11r2是SID)

    4.怎么查看trace文件:

    如果直接看trace文件是很难看懂的.就是下面的样子(我只是随便复制一段):

    1319423003070764
    =====================
    PARSING IN CURSOR #2 len=90 dep=1 uid=0 oct=3 lid=0 tim=1319423003070864hv=673844243 ad='7ecb9458' sqlid='9g485acn2n30m'
    select col#,intcol#,reftyp,stabid,expctoid from refcon$ where obj#=:1 order byintcol# asc
    END OF STMTPARSE #2:c=0,e=56,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,plh=2544153582,tim=1319423003070864
    BINDS #2: Bind#0oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
      oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0 kxs

    我们可以用oracle自带的工具TKPROF转化后再查看trace文件.转化后是下面的样子:

     

     tkprof E:\app\yanhx\diag\rdbms\prcd\prcd\trace\prcd_ora_5240_rctest.trc E:\app\yanhx\diag\rdbms\prcd\prcd\trace\prcd_ora_5240_rctest.txt 

     

    展开全文
  • Oracle trace文件的清理

    千次阅读 2018-05-31 10:24:04
    版本:oracle 12cOS:redhat 6.4某日,发现trace文件有12G,trm+trc数量达到8万个。目录是:/opt/oracle/diag/rdbms/orcl/ORCL/trace本来想直接从xftp直接删除,两次都卡死。遂从网上找到了清理语句,记录如下:find...
  • Oracle Trace文件生成及查看 (zz)

    千次阅读 2012-03-09 16:11:57
    Oracle Trace文件生成及查看 (zz) 1.Trace file简介: Trace file(追踪文件)是以trc为后续的文本文件,它记录了各种sql操作及所消耗的时间等,根据trace文件我们就可以了解哪些sql导致了系统的性能瓶颈,进而...
  • oracle trace文件解读

    千次阅读 2013-12-14 13:31:37
    oracle trace文件解析  =====================  PARSING IN CURSOR #1 len=68 dep=0 uid=59 oct=42 lid=59 tim=12047812267 hv=570864185 ad='66bd0bc4'  alter session set events '10046 trace
  • Oracle 查看trace文件

    千次阅读 2015-12-24 09:18:16
    查看trace文件
  • oracle trace文件

    2013-05-31 00:20:51
    Oracle 11g以前oracle的alter文件是在bdump目录下。oracle 11g一改常态以XML与传统的文本两种格式提供 Alert 日志。 oracle 11g新的日志的位置由Automatic Diagnostic  Respository(ADR)决定。可以通过新的初始化...
  • Trace file(追踪文件)是以trc为后续的文本文件,它记录了各种sql操作及所消耗的时间等,根据trace文件我们就可以了解哪些sql导致了系统的性能瓶颈,进而采取恰当的方式调优. 2.怎么生成trace file: 1. 首先用...
  • Oracle查看trace文件步骤

    千次阅读 2016-11-27 13:34:49
    1.获得当前trace文件生成路径 SQL> select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat)); TRACEFILE --------------------------------...
  • 方便删除oracle trace Crontab -l 55 0 * * * /home/oracle/scripts/rmtrace.sh >/dev/null 2>&1 #delete or...
  • 10g:/* 11g依然有效 */ SELECTd.VALUE ||'/' ||LOWER(RTRIM(i.instance,CHR(0))) ||'_ora_' ||p.spid ||'.trc' trace_file_name FROM(...
  • Oracle跟踪文件trace文件

    千次阅读 2017-02-03 11:11:05
    一、Oracle跟踪文件  Oracle跟踪文件分为三种...在数据库出现故障时,应首先查看文件,但文件中的信息与任何错误状态没有必然的联系。后台报警日志文件保存BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为SIDA
  • Oracle Ebs官方工具Tidy 代替tkprof,Oracle Trace 跟踪文件格式化工具,可观测语句绑定变量的值。
  • Oracle trace

    2016-10-31 13:10:11
    概述Trace file(追踪文件)是以.trc为后缀的文本文件,它记录了各种sql操作及所消耗的时间等,通过分析trace文件内容,我们可以了解哪些sql导致了系统的性能瓶颈,进而采取恰当的方式调优。常规方法开启trace文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,469
精华内容 18,187
关键字:

oracletrace文件如何查看