`

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
分享到:
评论

相关推荐

    oracle客户端必备文件

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

    Oracle数据库管理员技术指南

    1.2.3 怎样配置符合 OFA 的 Oracle 文件 系统 1.3 规划数据库文件布局 1.3.1 最大化可用性的规划 1.3.2 最小化磁盘争用的规划 1.4 建立参数文件 1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 ...

    最全的oracle常用命令大全.txt

    2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 3、查看回滚段名称及大小 ...

    深入解析Oracle.DBA入门进阶与诊断案例

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...

    Oracle9i的init.ora参数中文说明

    说明: 指定用于将生成的 C 文件编译为目标文件的 C 编译程序的完整路径名。此参数是可选的。随每个平台附带的特有的 make 文件中包含此参数的默认值。如果为此参数指定了一个值, 则该值将覆盖 make 文件中的默认值...

    第十一章实验作业.docx

    1.备份控制文件 备份控制文件有两种方式,即二进制文件形式和脚本文件形式。本练习将分别备份控制文件为二进制文件和脚本文件。...(4)打开以脚本文件形式备份的控制文件,查看生成的控制文件的脚本。

    Oracle PL/SQL PRofiler应用指南

    Profiler是ORACLE PL/SQL 的一个调试优化跟踪方案的应, 相对sqltrace+tkprof工具调试优化跟踪方案来说, Profiler有最直观更方便的优点,因为不需要生成和读取服务器端的跟踪文件,它是将跟踪数据全部存储的数据库...

    深入解析OracleDBA入门进阶与诊断案例 3/4

     针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识...

    深入解析OracleDBA入门进阶与诊断案例 4/4

     针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识...

    深入解析OracleDBA入门进阶与诊断案例 2/4

     针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识...

    关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考

    例如,我们在10046生成的trace文件中file#=4 block#=266 blocks=8,那么我可以通过下面两个SQL去定位对象 SQL 1:此SQL效率较差,执行时间较长。 SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME ...

    Oracle数据库的十种重新启动步骤

    在独占的系统用户下,备份控制文件: SQL>alter database backup controlfile to trace; 4. 在独占的系统用户下,手工切换重作日志文件,确保当前已修改过的数据存入文件: SQL>alter system switch logfile; 5. 在...

    系统及数据库备份.doc

    系统及数据库备份 "文件编号: "生效日期: "受控编号: " " " " " "密级: "版次: "修改状态: " "总页数 " "正文 " "附录 " " "编制: "审核: "批准: " " " " " " " " 文件修改控制 "修改记录编号 "修改状态 ...

    sqlmonitor

    SQLMonitor是TOAD 7.5带的一个工具。...没有它之前,只能在sqlnet.ora文件中设置trace_level_client,trace_file_client等参数,生成trc文件。尽管Oracle有分析trc文件的命令行工具,但这个方法总是太笨拙了。

    数据库项目组日常运维及应急故障处理手册.docx

    并分析hanganalyze 生成的trace文件,看是否可以找到引起数据库hang 住的会话的信息。 (3)做systemstate dump 此时生成systemstate dump的时间会比较长,尤其是在会话数量较多的情 况下。且生成dump文件的...

    Toad 使用快速入门

    支持Oracle数据库里面所有对象的新建、查看、修改,集成了几乎对所有数据库对象的管理所需要的功能。  按照 模式->对象类别 ->对象->对象可操作属性 -> 对象本身的详细信息和对象相关的信息 来组织,非常有...

    vc++ 应用源码包_1

    VC++实现网络连接查看器源码 非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows...

    vc++ 应用源码包_2

    VC++实现网络连接查看器源码 非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows...

    vc++ 应用源码包_6

    VC++实现网络连接查看器源码 非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows...

Global site tag (gtag.js) - Google Analytics