跳转到路径导航栏
跳转到正文内容

在Oracle数据库中跟踪效率低下的sql语句

http://www.sina.com.cn  2008年09月11日 08:11  中国自学编程网

  在诊断数据库系统性能的过程中,总会涉及到跟踪效率低下的sql语句,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大量跟踪文件中抽取出跟踪数据,并将它们保存到一个文件中。该实用程序在共享服务器配置中特别有用,因为调度程序可能把每一个用户请求传递给不同的共享服务器进程,从而为任何给定的会话产生多个跟踪文件。与通过大量跟踪文件发掘信息不同,Oracle数据库10g的trcsess可以让您获得关于单一用户会话的整合后的跟踪信息。现在就如何跟踪sql语句来做一个简单的总结。权做抛砖引玉之用。

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

  1)alter session set timed_statistics=true; /*适用于Oracle 8.1.7以后的版本*/

  2)alter session set max_dump_file_size=unlimited ; /*适用于Oracle 9i以后的版本*/

  3)alter session set tracefile_identifier='POX20031031a'; /*适用于Oracle 9i以后的版本*/

  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 9i之前的版本中,不能在会话级设置该参数,只能修改初始化文件然后重新启动数据库,这样将在实例级打开时间统计。

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

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

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

  如果应用程序的代码无法修改或者是不想去修改,则可以在其他会话中打开对特定会话的跟踪,方法如下:

  1)sys.dbms_system.set_bool_param_in_session(:sid, :serial,'timed_statistics', true);

  2)sys.dbms_system.set_int_param_in_session( :sid, :serial,'max_dump_file_size', 2147483647);

  打开和关闭跟踪的第一种方法(oracle推荐):

  3.1)sys.dbms_support.start_trace_in_session(:sid, :serial,waits=>true, binds=>false);

  /* 在此期间运行要跟踪的应用程序*/

  4.1)sys.dbms_support.stop_trace_in_session(:sid, :serial);

  打开和关闭跟踪的第二种方法:

  3.2)sys.dbms_system.set_ev(:sid, :serial, 10046, 8, '');

  /*在此期间运行要跟踪的应用程序*/

  3.2)sys.dbms_system.set_ev(:sid, :serial, 10046, 0, '');

上一页 1 2 下一页

Powered By Google ‘我的2008’,中国有我一份力!

新浪简介About Sina广告服务联系我们招聘信息网站律师SINA English会员注册产品答疑┊Copyright © 1996-2008 SINA Corporation, All Rights Reserved

新浪公司 版权所有