教你如何收集Oracle进程中SQL跟踪信息

文章作者 100test 发表时间 2007:09:06 13:31:38
来源 100Test.Com百考试题网


在诊断数据库系统性能的过程中,总会涉及到跟踪效率低下的SQL语句,现在就如何跟踪SQL语句来做一个简单的总结。

如果我们可以修改应用系统的源代码,则可以直接在程序中加入如下的语句:

1)alter session set timed_statistics=true; 

/*适用于Oracle 7.3以后的版本*/ 



2)alter session set max_dump_file_size=unlimited ;

 /*适用于Oracle 7.3以后的版本*/ 



3)alter session set tracefile_identifier=POX20031031a; 

/*适用于Oracle 8.1.7以后的版本*/ 



4)alter session set events 10046 trace name context forever, level 8; 



/*在这里编写应用程序的代码*/ 



5)alter session set events 10046 trace name context off;

在上述语句中,语句1)是把该会话的时间统计打开,该参数默认为false.在Oracle 7.3之前的版本中,不能在会话级设置该参数,只能修改初始化文件然后重新启动数据库,这样将在实例级打开时间统计。

语句2)是把跟踪文件的大小设置成操作系统所允许的最大尺寸,这样可以防止跟踪文件在完成所需要的跟踪之前被填充满,此外需要注意的是确保存放跟踪文件的目录要有足够的空间,否则将会收到“文件系统已满”错误。

语句3)的作用是使生成的跟踪文件名称中包含POX20031031a字符串,这样可以使你很容易的找到所需的跟踪文件,该参数在Oracle 8.1.7之后可用。

语句4)和语句5)的作用分别是打开和关闭跟sql跟踪,你可以在这两个语句之间写入应用程序的代码,这些代码的执行情况都将被跟踪。需要注意的是语句4)的level关键字,它用来指定跟踪级别,一共有0,1,2,4,8,12六个级别可以设置,0相当于关闭跟踪;1是输出一般的跟踪信息,不包括绑定变量和等待信息;2和1相同;4是在级别1的基础上增加绑定变量信息;8是在级别1的基础上增加等待信息;级别12是输出包含级别1,4,8的所有信息。


相关文章


Linux开发中的常用命令
vmware中linux如何设置网卡
Oracle数据库中临时表的进一步深入研究
“数字公交”项目中的Oracle开发技巧
教你如何收集Oracle进程中SQL跟踪信息
三种Windows版本下教你如何卸载Oracle
J 中的自定义标签由浅到深详细讲解
如何才算真正的掌握Java语言(J2SE篇)
oracle事务隔离级别,用jdbc体验
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛