enq:HW-contention

87 篇文章 34 订阅 ¥39.90 ¥99.00
本文探讨了Oracle数据库中由于大量Insert操作引起的HW锁(High Water Mark)争用问题,导致的enq: HW-contention等待事件。通过创建使用FLM(自由列表管理)的表空间和表,并进行并发Insert操作,展示了HW锁争用的现象。通过分析v$session_wait和v$lock视图,揭示了锁争用的具体情况,并提供了定位受影响表空间和段的方法。
摘要由CSDN通过智能技术生成
  8.1 enq:HW-contention

 为防止多个进程同时修改HWM而提供的锁称为HW锁,想要移动HWM的进程必须获得HW锁。若在获取HW锁过程中发生争用,

则等待enq:HW-contention事件。


HW锁争用大部分是因为大量执行Insert所引起的,偶尔也会因大量执行Update在回滚段中发生HW锁争用现象。若是Upate,表中段的扩展的大小虽然不多,

但在创建回滚数据的过程中,需要回滚段的急速扩张。HW锁争用是在段的急速空间扩展时普遍出现的等待现象,有时也会引发严重的性能下降。


HW锁的ID1值是表空间的编号,ID2值是段头块的DBA。因此利用v$lock视图或v$session_wait视图,可以确认发生HW锁争用的表空间和段。


与之前讨论的内容相同,段空间管理方法大体上分为FLM和ASSM(segemnet管理方法)

使用FLM时,特别是HW锁争用称为问题的情况较多,这是因为在使用FLM时,决定HWM移动的FREELIST属性的缺省值设置为1.

  接下来测试一下,同时大量执行Inert操作引发的enq:HW-contention 等待的情况,测试方案如下:

1)创建使用FLM的表孔空间HWM_TEST_TBS

2)表空间HWM_TEST_TBS里创建表HWM_TEST,为了增加Insert的负荷,表HWM_TEST的每个块都将存储一个行

3)确认6个会话上同时执行Insert时发生的HW锁争用

【测试32】FLM和HW锁争用:

---创建使用FLM的表空间:

create tablespace hwm_test_tbs
datafile '/u03/oradata/hwm01.dbf' size 100M
autoextend on 
extent management local uniform size 1M
segment space management manual;

--因为块大小等于8K,每个块存储一个行

--因为块大小等于8K,所以创建7.K的行,则一个行占据一个块。

--PCTFREE=10,因此一个行在8K*0.9=7.2K以上,就可以占据一个块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值