Chinaunix首页 | 论坛 | 博客
  • 博客访问: 719959
  • 博文数量: 33
  • 博客积分: 10012
  • 博客等级: 上将
  • 技术积分: 1365
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-15 09:11
文章分类
文章存档

2009年(10)

2008年(23)

我的朋友

分类: Oracle

2008-08-19 09:48:30

详细的介绍见http://blog.oracle.com.cn/index.php/120901/viewspace-2109.html

这里说说我的简单的跟踪。
SQL_TRACE跟踪SQL语句,要使用SQL_TRACE,必须使用SYS用户,使用SYSDBA身份登录,下列的命令使用SQL*PLUS或pl/sql   developer的Command窗口。    
   
  以跟踪goldmapclient为例,首先使用如下SQL语句获取goldmapclient的SESSION信息  
   
  select   sid,   serial#,   username   from   v$session;

假设取到的INTOOLS登录session的sid   =   9,   serial#   =   71,
则执行下列命令对该session进行监听(以下命令好像必须在command命令窗口中执行,在sql windows中运行不起来,不知道要怎么执行)  
   
  exec   dbms_system.set_sql_trace_in_session(9,71,true);

然后操作goldmapclient,操作完成后使用下面命令关闭监听  
   
  exec   dbms_system.set_sql_trace_in_session(9,71,false);

则在%ORACLE_HOME%\ADMIN\[服 务名]\udump目录下生成最新的.trc跟踪文件,可使用ORACLE提供的工具程序tkprof将.trc文件解析为更易读的文件:  
   
  tkprof   [.trc文件路径]   [目标文件路径]  
后面还可加上如下一些参数,其中比较有用的一个排序选项是fchela,即按照elapsed   time   fetching来对分析的结果排序(记住要设置初始化参数time_statistics=true),
生成的.prf文件将把最消耗时间的sql放在 最前面显示。另外一个有用的参数就是sys,这个参数设置为no可以阻止所有以sys用户执行的sql被显示出来,这样可以减少分析出来的文件的复杂度,便于查看。  

这样将会产生一个目标文件*.prf.用文本编辑器就可以打开这个文件察看了
   
阅读(1288) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~