`

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)

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






Oracle查看trace文件步骤
 
 
 
1.获得当前trace文件生成路径
 
SQL> select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));
 
----------------------------------------------------------------------------------
 
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文件内容为可读的输出结果
注意Oracle的命令一般末尾都不要带分号。除非写的是SQL语句。否则那个分号也会算进命令里面。当做命令的内容来执行。
 
C:\Documents and Settings\Administrator>tkprof f:\oracle\administrator\diag\rdbms\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 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)  

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





[img]http://dl2.iteye.com/upload/attachment/0094/0115/168f1a99-8cf4-3101-8e89-a623b3e3e6c2.jpg[/img]




比如我本机上的内容是:

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

TRACEFILE
----------------------------------------------------------------------------
e:\app\administrator\diag\rdbms\fsyd\fsyd\trace\fsyd_ora_8096.trc


C:\Documents and Settings\kington>tkprof e:\app\administrator\diag\rdbms\fsyd\fsyd\trace\fsyd_ora_8096.trc output=C:\fsyd_ora_8096.txt;

TKPROF: Release 11.1.0.6.0 - Production on 星期三 2月 19 18:54:13 2014

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

C:\Documents and Settings\kington>

转换后的 fsyd_ora_8096.txt 内容如下:


[img]http://dl2.iteye.com/upload/attachment/0094/0117/66ee3894-6d8e-3087-ba1c-98e2fb6d524a.jpg[/img]


TKPROF: Release 11.1.0.6.0 - Production on 星期三 2月 19 18:54:13 2014

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

Trace file: e:\app\administrator\diag\rdbms\fsyd\fsyd\trace\fsyd_ora_8096.trc
Sort options: default

********************************************************************************
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
********************************************************************************
Trace file: e:\app\administrator\diag\rdbms\fsyd\fsyd\trace\fsyd_ora_8096.trc
Trace file compatibility: 11.01.00
Sort options: default

       1  session in tracefile.
       0  user  SQL statements in trace file.
       0  internal SQL statements in trace file.
       0  SQL statements in trace file.
       0  unique SQL statements in trace file.
     116  lines in trace file.
       0  elapsed seconds in trace file.


 





  • 大小: 233 KB
  • 大小: 109 KB
分享到:
评论

相关推荐

    Tidy 代替tkprof,Oracle Trace 跟踪文件格式化工具

    Oracle数据库在进行性能调优时,经常会涉及到对跟踪文件(Trace Files)的分析。这些跟踪文件包含了数据库执行的详细信息,如SQL语句、执行计划、等待事件等,但原始的跟踪文件数据往往混乱且不易读。这时,我们就...

    oracle查看alert日志文件位置

    ### Oracle 查看 Alert 日志文件位置 在Oracle数据库管理中,了解如何查看Alert日志文件的位置至关重要。Alert日志文件包含有关数据库实例运行时的重要信息,例如错误消息、警告和其他重要事件,对于诊断问题和维护...

    oracle数据库日志查看方法

    Trace文件是Oracle在特定条件下生成的跟踪文件,主要用于深入分析数据库性能或定位特定问题。Trace文件的位置可以通过以下命令查询: ```sql SHOW PARAMETER USER_DUMP_DEST; ``` #### 六、查看Listener日志 ...

    oracle日志文件大全

    - **定义**:当特定的错误或异常情况发生时,Oracle会生成跟踪文件,这些文件包含了详细的调试信息。 - **类型**: - 用户跟踪文件(User Dump Dest):记录用户级别的错误和调试信息。 - 进程跟踪文件...

    oracle获得跟踪文件的sql查询语句

    可以查找与跟踪文件生成相关的事件,例如“SQL Trace File”: ```sql SELECT sid, serial#, event, wait_class, seconds_in_wait FROM v$session_event WHERE event = 'SQL Trace File'; ``` 3. **V$DIAG_...

    SQL Trace and TKPROF

    4. **禁用 SQL Trace 并格式化 trace 文件**:在收集完所需的统计数据后,需要禁用 SQL Trace,并使用 TKPROF 工具格式化 trace 文件以便于阅读和分析。 5. **解析 TKPROF 输出**:最后一步是分析 TKPROF 的输出...

    oracle客户端必备文件

    在Oracle中,各个组件(监听器、数据库实例、各种配置工具)在安装和运行时都会有相应的日志Log和跟踪文件Trace生成。Oracle 11g之前,这些信息都是零散的分布在Oracle组件目录中的。在11g,Oracle推出了ADR...

    Oracle数据库文件及恢复方法.docx

    如果所有控制文件都丢失,需要使用`ALTER DATABASE BACKUP CONTROLFILE TO TRACE`生成恢复脚本,然后手动创建新的控制文件,包含数据库的所有必要信息。 在控制文件恢复的过程中,需要注意以下几点: 1. 数据库需先...

    实例恢复相关TRACE文件

    3. **TRACE文件的作用**:当数据库遇到问题时,后台进程会生成TRACE文件,这些文件包含了详细的错误信息、堆栈跟踪和诊断数据,帮助管理员识别问题并进行修复。在实例恢复中,分析TRACE文件能帮助我们了解故障发生的...

    10046事件和sql_trace.docx

    在Oracle 10g及之前的版本,TRACE文件默认存储在`$ORACLE_BASE/admin/SID/ump`目录下;而在11g及更高版本,存储路径通常是`$ORACLE_BASE/diag/rdbms/orcl/orcl/trace`。 三、查询TRACE文件路径 可以运行以下SQL查询...

    Oracle配置文件.zip

    7. 监控与日志:Oracle还提供了一系列的日志文件,如alert.log记录数据库的异常和事件,trace文件记录详细的错误信息,这些都有助于排查问题和优化数据库性能。 总的来说,"Oracle配置文件.zip"对于理解和管理...

    使用 Tkprof 分析 ORACLE 跟踪文件

    Tkprof 是一个功能强大的工具,用于分析 Oracle 跟踪文件,生成一个更加清晰合理的输出结果。通过 Tkprof,可以对 Oracle 跟踪文件进行分析,找出有问题的 SQL 语句,并对其进行优化。 其中,Tkprof 命令语法为:...

    ct.zip_trace

    1. **生成SQL Trace文件**:在Oracle环境中,可以使用`ALTER SESSION SET SQL_TRACE = TRUE`开启SQL Trace,或者通过`DBMS_SESSION.SIMPLE_TRACE`包来启动特定会话的跟踪。执行完需要分析的SQL后,关闭SQL Trace。 ...

    SQL TRACE原理、方法、事件查看总结

    收集到的SQL TRACE文件通常是二进制的TRC格式,需要通过TKPROF工具进行处理。TKPROF可以生成包含执行时间、执行计划、I/O信息的文本报告,方便DBA分析性能瓶颈。运行TKPROF的命令通常如下: ``` tkprof tracefile....

    oracle数据库跟踪软件

    在使用Oracle数据库跟踪软件时,通常需要结合TKPROF工具来解析和格式化trace文件,使其更易于理解和分析。TKPROF可以生成执行计划、执行时间和其他关键指标的报表,帮助我们快速识别性能问题。 压缩包中的“程序...

    Oracle 12c 12.1.0.1.0管理控制文件官方文档翻译说明(一抹曦阳)

    - **视图介绍**:Oracle数据库提供了一系列的数据字典视图,如V$CONTROLFILE、V$PARAMETER等,用于查看控制文件的相关信息和参数设置。 通过对上述知识点的详细解释,我们可以更深入地理解Oracle 12c 12.1.0.1.0中...

    Oracle事件探查器

    1. **Trace文件**:Oracle事件探查器生成的跟踪文件包含了数据库执行的各种操作的详细信息,如SQL语句、PL/SQL块、数据库调用、等待事件等。这些信息对于定位性能问题和故障排查至关重要。 2. **10046 trace事件**...

    恢复Oracle数据库控制文件.pdf

    4. 修改第三步生成的Trace文件,复制创建控制文件的部分语句并进行修改,使其反映最新的数据库结构。 在处理过程中,要注意确保存储系统的顺序正确,比如在启动MDC服务器之前关闭所有客户端,并遵循存储设备的开机...

Global site tag (gtag.js) - Google Analytics