oracle sql trace案例,Oracle SQL TRACE 的使用

1、SQL TRACE 的启动与关闭:

在使用SQL TRACE之前,需要先查看oracle的初始参数是否设置好,有三个参数需要正确设置,分别是timed_statistics=true、user_dump_dest=跟踪文件存放位置、max_dump_file_size=unlimited、,这个值可以自己设定,其中timed_statistics参数用于是否可以在系统中执行跟踪,为true是表示可以执行跟踪。

其实在oracle10gR2中这几个参数都是已经设置好了的不用多做设置。 确定好这几个参数之后,就可以开始跟踪执行了。你可以在sys用户下执行跟踪,或者其他具有权限的用户下执行跟踪(不过当我在scott用户下执行跟踪之后发现没有跟踪文件)。

(1)开启跟踪:

Alter session set sql_trace true;

(2)执行需要跟踪的操作,比如

Select ename from emp where empno=7788;

(3)关闭跟踪

Alter session set sql_trace false;

2、转换、查询跟踪文件

我的初始参数user_dump_dest参数的值为/home/oracle/orcl/udump,则跟踪完成之后,我再这个目录下将看到这个跟踪文件,但是当我打开它是发现里面有很多跟踪文件,我不知道哪个文件时我刚才的跟踪文件,所以接下来,我再回到sql*plus里面查询我执行跟踪的会话的进程id,因为跟踪文件的文件名的格式是(实例名_ora_进程id.trc),我的实例名是orcl,所以我执行查询来确定进程id,查询之前先给用户赋予查询v$process、v$session和v$mystat视图的权限:

Grant select on v_$process to scott;

Grant select on v_$session to scott;

Grant select on v_$mystat to scott;

还好,在赋予权限的时候我时刻记得,在oracle中,我平时所访问的v$视图其实就是一个同义词,她不是实际的视图,而是由底层视图创建的同义词,而这些视图的底层视图与这些视图名称极为相似,比如v$process的底层视图是v_$process,所以在赋权时应该将v_$process视图的查询权限赋给用户。赋权完成之后就可以执行查询了:

Select spid

From v$process p,v$session s

Where p.addr=s.paddr and s.sid=(select sid from v$mystat where

rownum=1);

在返回的查询结果中,spid(也就是会话进程id)为2842,则我确定我刚才的跟踪文件为orcl_ora_2842.trc。

确定了跟踪文件就可以对其进行格式转换了:

Tkprof orcl_ora_2842.trc orcl_ora_2842_1.prf explain=system/password;

这不是在sql*plus中运行,而是在终端中运行。其实这个转换并不是必须的,但是阅读orcl_ora_2842.trc确实有点费劲,所以我用tkprof实用程序对跟踪文件进行转换,但是这种转换不会包含原始跟踪文件的所有信息,她会丢失一些信息,但是转换之后便于阅读。转换完毕,我先打开它,看看这些跟踪信息···

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25244847/viewspace-693287/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值