enq: HW - contention事件ASSM的情况

zs451981 2017-12-22 04:40:21
性能分析的时候遇到了enq: HW - contention的一个事件。

第一步:分析原因
在statspack报告中,发现了大量的Insert文,查阅资料得到的结果是:
存有LOB大对象的表的并发插入、更新引起的LOB Segment High Water Mark是常见的LOb并发争用。
在SQL文的插入字段中果然发现了LOB字段。

对策:
1.ALTER TABLE <lob_table>
MODIFY LOB (<column_name>) (allocate extent (size <extent size>));
产生高水位线锁的原因是因为extent小,且有大量的并发插入,那么我们就可以通过增大extent来缓解频繁的移动高水位线。
但是这个extent size增大多少,我目前还不知道根据什么来判定。

2.引入44951 event
44951 event的LEVEL参数定义了在ASSM下当LOB segment的HWM上升时一次获取的chunks数目,一般推荐设置为1024,即一次get 1024个chunk,由于单次跃升的HWM更高了,这让进入enq HW – contention等待的机会变少了。 需要注意的是该44951 event仅仅对ASSM表空间上的LOB SEGMENT有效。
alter system set events ‘44951 trace name context forever, level 1024’;

3.BasicFiles迁移变成SecureFiles存储方式
oracle 11G 新机能。具体步骤略!

以上是项目中得到的几个结论。第一次写,不足之处还请见谅

...全文
287 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
minsic78 2017-12-22
  • 打赏
  • 举报
回复

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧