使用oracle的10046事件跟踪SQL语句

导读:


我们在分析应用程序性能问题的时候,更多地需要关注其中SQL语句的执行情况,因为通常应用程序的性能瓶颈会在数据库这边,因此数据库的sql语句
是我们优化的重点。利用Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息。这对
我们分析、定位数据库性能问题是非常有用的。

具体的方法如下:


1、首先获得spid、sid、serial#,machine为连接oracle的机器名


SQL> select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =


b.addr and a.machine='SYS_F85';
 
SPID               
SID    SERIAL#   MACHINE
----------------------------------------------------------------
24722               
15        196 SYS_F85




2、利用10046事件开始跟踪


SQL>execute sys.dbms_system.set_ev(15,196,10046,1,');
PL/SQL procedure successfully completed.


参数说明:
15:SID
196:SERIAL#


注意这里必须以sysdba登录。


3、在应用程序中执行对数据库的操作,比如性能较差的一些查询、插入、删除操作等。


4、关闭事件结束跟踪
SQL>execute sys.dbms_system.set_ev(15,196,10046,0,');


PL/SQL procedure successfully completed.


5、获得产生的跟踪文件所在的目录
SQL> select value from v$parameter where name = 'user_dump_dest';


VALUE


--------------------------------------------------------------------------------
/oracle/admin/ora9i/udump


转到该目录下可以看到生成了一个ora9i_ora_24722.trc文件,此处的24722即SPID的值。


6、在命令行下执行oracle的tkprof命令,将ora9i_ora_24722.trc转化为文本文件。如:
$ tkprof  ora9i_ora_24722.trc ora9i_ora_24722.sql


此时在ora9i_ora_24722.sql文件中,就可以看到刚才执行应用程序时所执行的sql语句的执行次数、


CPU使用时间等数据。


本文转自

http://www.blogjava.net/xingcyx/archive/2007/01/09/92638.html
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值