ITPub博客

首页 > 数据库 > Oracle > 读书笔记-高级owi与oracle性能调整-segment

读书笔记-高级owi与oracle性能调整-segment

原创 Oracle 作者:selectshen 时间:2014-09-05 20:08:14 0 删除 编辑
enq:hw-contention
为防止多个进程同时修改hwm而提供的锁称为hw锁.想要移动hwm的进程必须获得hw锁.若在获取hw锁过程中发生争用,则等待enq:hw- contention事件.hw锁争用大部份是因大量执行insert所引发的,偶尔也会因大量执行update在回滚估中发生hw锁争用现象.若是 update,表中段的扩展的大小虽然不多,但在创建回滚数据的过程中,需要回滚段的急速扩张.hw锁争用是在段的急速空间扩张时普遍出现的等待现象,有 时也会引发严重的性能下降.
oracle 10g起添加了in-memory undo功能.imu是将回滚数据存于共享池内的kti-undo区域的功能.kti-undo区域上存储的回滚数据会由oracle被转到 (flush)回滚段.因此从oracle 10g起,回滚段扩张引起的hw锁争用比之前版本有所减少,期待撤销块的读写工作减少会给整个系统带来改善性能的效果,但对于imu的性能问题还不被人所 知,imu被多个in-memory undo锁存器保护,为了使用相同kti-undo区域,在发生争用时等待latch:in memeory undo latch事件.
减少hw锁争用的方法:
(1)oracle 9i起使用assm.大部份时候,assm保障令人满意的结果.
(2)无论哪个版本,均使用适当大小的区.一般推荐使用5m左右,但这不是绝对值.
(3)oracle 8i起使用lmt,若不是特殊情况,则使用uniform size的extent,使用充分大的extent.
了解hwm位置的方法有许多,最简单的方法是使用dbms_space.unused_space

enq:st-contention,enq:tt-contenttion
oracle 8i上使用dmt时,执行区分配之类的空间管理工作,oracle为同步相应工作而使用st锁.st锁在整个实例上只有一个.
特定时刻同时过多发生空间管理相关工作时,为实现同步,大部份会话等待获取st锁,因此发生性能下降.
oracle 8i起提供了减少st锁争用的三种方法:
(1)添加了lmt功能.
(2)扩大了tt锁的使用.对这前使用st锁的部份表空间相关的工作上会使用tt锁.tt锁与st锁不同,每个表空间都可以使用一个,所以比使用st锁时有减少争用的效果.
(3)引入临时表空间.

enq:us-contention
为了同步将回滚段联机或脱机的过程,执行该工作的服务器进程或后台进程应获得us锁.每个回滚段都分配一个us锁.若在获取us锁的过程中发生争用,则等 待enq:us-contention事件.服务器进程应在开始事务时分配回滚估,但如果不存在可用的回滚段时,应该创建新的回滚段或将脱机状态的回滚段 联机.事务变化频繁时,将回滚段联机的操作可能广泛发生us锁争用.
一般系统上,突然将许多回滚段联机的情况不多,因此us锁争用一般不经常发生.但是如果因系统上事务的修改量较大,而us锁争用持续发生,就要指定执行如下的10511事件.10511事件起到阻止smon将回滚段脱机的作用.

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

请登录后发表评论 登录
全部评论

注册时间:2014-01-05

  • 博文量
    169
  • 访问量
    1567868