【转】Oracle10g ASH使用

从Oracle10g开始引入的ASH(Active Session History)用于查询用户活动会话的历史信息。ASH每秒采样V$session,记录会话等待的事件。数据在被新数据周期性地覆盖前保留30分钟,之后被送到AWR中。通过ashrpt.sql脚本可以生成详细的ASH报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle10g ASH使用
2008-11-12 11:48
ASH(Active Session History)

从Oracle10g开始引入了V$ACTIVE_SESSION_HISTORY视图,用于查询用户活动会话的历史信息。

ASH每秒采样V$session,记录会话等待的事件,不活动的会话不会被采样。这个采样工具是非常有效的,因为它直接访问oracle10g内部结构。

ASH缺省每一秒收集一下活动会话的情况,间隔时间由 _ash_sampling_interval 参数确定。

由于数据量巨大,把所有的ASH数据写到磁盘上是不可接受的。通常每60分钟MMON进程会写这些信息,当ASH BUFFER满的话MMNL进程会写。

SQL> select * from v$sgastat where name like '%ASH%';
POOL         NAME                            BYTES
------------ -------------------------- ----------
shared pool ASH buffers                   6291456
注意,ASH buffers的大小按照以下算法分配: Min(shared_pool_size*5%,2M*cpu_count)

V$ACTIVE_SESSION_HISTORY中的数据在被新数据周期性地覆盖前保留30 分钟,当数据从这个动态性能视图中清除时,这些数据被送到活动工作负载信息库(Active Workload Repository,AWR)中,它是一个基于磁盘的信息库。被清除的ASH(活动会话历史)数据可以在 DBA_HIST_ACTIVE_SESSION_HIST 视图中看到,能够看到过去的会话的等待事件,在默认状态下,AWR中的数据7天后即被清除。

V$ACTIVE_SESSION_HISTORY包含top wait events, top SQL, top SQL command types,top sessions等等对于诊断故障非常有用的信息。

V$ACTIVE_SESSION_HISTORY是生成ASH报表的来源,可以通过OEM来生成report,也可以通过Oracle新提供的一个脚本来完成这个工作,执行脚本:
SQL> @?/rdbms/admin/ashrpt.sql
输入 report_type 的值:
输入 begin_time 的值: -30    (查询过去半小时内的session情况)
输入 duration 的值:
输入 report_name 的值:
Report written to ashrpt_1_1112_1047.html
下载ashrpt_1_1112_1047.html文件并查看分析。

--End--

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

转载于:http://blog.itpub.net/16426127/viewspace-592624/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值