暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle ASH

原创 不吃草的牛_Nick 2022-05-28
710

从 Oracle 10g 开始,Oracle 引入了 ASH 新特性,也就是活动 Session 历史信息记录(ActiveSession History,ASH)。ASH 以 V$SESSION 为基础,每秒钟采样一次,记录活动会话等待的事件。

 

因为记录所有会话的活动是非常昂贵的,所以不活动的会话不会被采样,这一点从 ASH的“A”上就可以看出。采样工作由 Oracle 10g 新引入的一个后台进程 MMNL 来完成。

 

是否启用 ASH 功能,受一个内部隐含参数控制:

_ash_enable  TRUE  To enable or disable Active Session sampling and flushing


而采样时间同样由另一个内部隐含参数决定:

_ash_sampling_interval  1000  Time interval between two successive Active Session samples in millisecs

1000 毫秒,正好是 1 秒的时间。


ASH 信息被设计为在内存中滚动的,在需要的时候早期的信息是会被覆盖的。ASH 记录的信息可以通过 v$active_session_history 视图来访问,对于每个活动 SESSION,每次采样会在这个视图中记录一行信息。

 

这部分内存在 SGA 中分配:

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


注意 ASH buffers 的最小值为 1MB,最大值不超过 30MB,大小按照以下算法分配:

Max ( Min (cpu_count * 2MB, 5% * SHARED_POOL_SIZE, 30MB), 1MB)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论