oracle 性能诊断工具,oracle性能诊断工具

oracle提供的性能诊断的工具:autotrace、sql_trace、10046事件。

简要记录一下这些工具的使用方法:

autotrace用于跟踪sql的执行计划,收集统计信息。

默认此功能是关闭的,使用下面语句打开:

set autotrace on      包含执行计划和统计信息

set autotrace on explain   只显示执行路径

set autotrace on statistics 只显示执行的统计信息

set autotrace off   关闭autotrace

set autotrace traceonly  同set autotrace on,只是不显示查询的输出

sql_trace

可以在全局启用,也可以在session级启用。

1、全局启用:修改pfile/spfile:sql_trace=true,会影响系统性能,很少使用

2、在当前session级设置:

alter session set sql_trace=true;

alter session set sql_trace=false;

3、跟踪其他用户进程:

通过oracle提供的系统包DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION来完成。

查看包中的过程:

desc DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION

获取要跟踪的进程的sid,serial#,username:

select sid,serial#,username from v$session;

执行:

exec DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#,ture/false)

exec DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(9,2344,ture)

10046事件:

10046是oracle的内部事件,是对sql_trace的增强,可以设置为4个级别:

level1:启用标准的sql_trace功能,等价于sql_trace

level4:等价于level1+绑定值(bind values)

level8:等价于level1+等待事件跟踪

level12:等价于level1+level4+level8

10046也可以在全局设置,也可以在session级设置

1、在全局设置

在参数文件中增加:

event="10046 trace name context forever level 12"

此设置包括所有用户的所有进程生效,包括后台进程

2、对当前session设置

alter session set event '10046 trace name context forever';

alter session set event '10046 trace name context forever,level 8';

alter session set event '10046 trace name context off';

3、对其他session设置

通过DBMS_SYSTEM.SET_EV系统包来实现:

执行跟踪:

exec dbms_system.set_ev(sid,serial#,10046,8,'username');

结束跟踪:

exec dbms_system.set_ev(sid,serial#,10046,0,'username');

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值