深入浅出等待事件和性能诊断02

oracle 10g中,新增v$session_wait_history视图记录的是数据库的历史状态及session的历史等待信息等数据,也就是活动session的最近十次的等待事件,同期oracle又推出了ASH新特性,活动session历史信息记录active session history ASH

ASHv$session为基础,每秒钟采样一次,采样工作由oracle 10g新引入的后台进程mmnl完成,可以查看v$process视图或者通过警告日志来查看具体的mmnl进程信息。

Ash功能默认是开启的,由隐含参数_ash_enable控制

SQL> col ksppinm for a20

SQL> col ksppdesc for a20

SQL> col ksppstvl for a20

SQL> select ksppinm,ksppdesc,ksppstvl from x$ksppi a,x$ksppcv b

2 where a.indx=b.indx and a.ksppinm='_ash_enable';

KSPPINM KSPPDESC KSPPSTVL

-------------------- -------------------- --------------------

_ash_enable To enable or disable TRUE

Active Session samp

ling and flushing

ash的采样间隔时间由另一个内部隐含参数决定_ash_sampling_interval

SQL> select ksppinm,ksppdesc,ksppstvl from x$ksppi a,x$ksppcv b

2 where a.indx=b.indx and a.ksppinm='_ash_sampling_interval';

KSPPINM KSPPDESC KSPPSTVL

-------------------- -------------------- --------------------

_ash_sampling_interv Time interval betwee 1000

al n two successive Act

ive Session samples

in millisecs

根据oracle性能和功能的特点,ash频繁的采样是否会影响性能,采样对象能肯定会有影响,但是因为oracle采样工具是直接访问的oracle10g内部结构,及其高效的,对于性能的影响也是非常低的。

Ash信息是在内存中滚动的,需要的时候跟回滚段等一样会被覆盖,可以通过v$active_session_history视图来访问ash记录的信息,对于活动的session,每次采样都会在视图中记录一行信息,这部分内存也在sga中分配

SQL> select * from v$sgastat where name like 'ASH%';

POOL NAME BYTES

------------ -------------------------- ----------

shared pool ASH buffers 2097152

生成ash报告可以通过脚本方式或者oem图形界面生成,ash报告包括top等待事件,top sqltop session等内容

脚本方式:执行相应脚本oracle_homerdbmsadminashrpt.sql然后填写相应信息即可在相应目录下生成一个报告信息。

AWR自动负载信息库

内存中记录的ASH信息始终是有限的,为了保存历史数据,这些信息最终需要写入磁盘,这些历史信息的存储,引出了oracle 10gAWR特性。AWR收集关于该特定数据库的操作统计信息和其他统计信息,oracle以固定时间间隔(默认一个小时)为其所有重要统计信息和负载信息执行快照,并将快照存储在AWR中。这些信息在AWR中默认保留一周然后被清除。

AWR采样工作由后台进程mmon60分钟执行一次,ASH信息也被包含在AWR负载库中。虽然ASH buffer设计保留1小时信息,但是经常这个内存是不足够的,当ASH buffer满了后,后台进程mmnl将会主动将ash信息写出。由于数据量较大,写出的数据占采样数据的10%,通过direct-path insert完成,减少redo生成,从而减少数据库性能影响。

AWR收集统计信息的特性statistics_level影响,该参数有3个可选值。

BASICAWR统计信息收集和所有自我调整特性都被关闭

TYPICAL:数据库收集部分统计信息,这些信息为典型的数据库监控需要,默认设置

ALL:所有可能统计信息被收集

写出的比例受隐含参数控制_ash_disk_filter_ratio,默认是10,写出到AWR负载库的ASH信息记录在AWR的基础表WRH$_ACTIVE_SESSION_HISTORY(这个表是分区表)oracle自动进行清除。AWR记录的信息还包括别的方面统计信息等重要数据,oracle 10g中新增的sysaux表空间存储awr信息。用过statspack也可以收集统计信息,但是无法收集session历史信息。

有了AWR数据仓库后,oracle10g引入了另一个自动数据库诊断监控程序ADDMADDM定期检查数据库的状态,根据内建的专家系统,自动确定潜在的数据库性能瓶颈,其执行效率很高,几乎不影响数据库总体性能。

[@more@]

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

转载于:http://blog.itpub.net/25362835/viewspace-1057067/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值