启用sql跟踪

1.最简单的方法
alter session set sql_trace=true;

2.10046调试事件

10046事件有5个等级:
0: 禁止调试事件。
1: 给出如下信息:sql语句、解析、执行、统计信息等。
4: 1+绑定变量的额外信息。主要是数据类型、精度以及每次执行时绑定变量的值
8: 1+等待事件的详细信息。主要是等待事件的名字、持续时间,以及一些额外的参数。
12:1+4+8

利用10046事件启用跟踪:
alter session set events '10046 trace name context forever,level n';
alter session set events '10046 trace name off';
也可以在instance级使用10046事件
alter system set events '10046 trace name context forever, level 1';

3.Oracle 10g以后提供了dbms_monitor包来开启和关闭SQL跟踪:
  • 会话级
使用dbms_monitor包的session_trace_enable和session_trace_disable可在会话级别 开启和关闭SQL跟踪。
dbms_monitor.session_trace_enable(session_id => 151,serial_num => 62,waits => ture,binds => false);
dbms_monitor.session_trace_disable(session_id => 151,serial_num => 62);
利用session_trace_enable过程开启SQl跟踪的时候,v$session视图的列sql_trace、sql_trace_waits、sql_trace_binds也会设定相应的值。不过只有在被跟踪的会话至少执行了一个SQL语句的时候才会设定。
  • 客户端级
使用dbms_monitor包的client_id_trace_enable和 client_id  _trace_disable可在客户端级 开启和关闭SQL跟踪。这些过程只有在会话属性客户端标记client_identifier已经设定后才有用。可以使用 dbms_session.set_identifier(client_id=>'hello.com.cn');设定客户端标记。
conn scott/tiger
exec  dbms_session.set_identifier(client_id=>'hello.com.cn');
select sid,serial#,client_identifier from v$session;
       SID    SERIAL# CLIENT_IDENTIFIER
---------- ---------- ------------------------------
       151         62 hello.com.cn

conn / as sysdba
exec dbms_monitor.client_id_trace_enable(client_id=>'hello.com.cn',waits=>true,binds=>false);
exec dbms_monitor.client_id_trace_disable(client_id=>'hello.com.cn');
  • 数据库级
要为所有连接到数据库的会话打开或关闭SQL跟踪,dbms_monitor包提供了database_trace_enable和database_trace_disable过程。
dbms_monitor.database_trace_enable(waits=>ture,binds=>trus,instance_name=>null);
dbms_monitor.database_trace_disable(instance_name=null);
在RAC上,通过指定instance_name参数,能够对指定的示例进行跟踪。

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

转载于:http://blog.itpub.net/25791987/viewspace-721493/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值