low HWM 与 HWM

研究了好久 low HWM到底是个什么东西,存在的意义是什么,最后终于明悟了。low HWM是为了全表扫描的时候提高性能(也许还有其它的作用)。


low HWM 存在与ASSM中。 当HWM上移之后, low HWM就会跑到之前HWM那个位置。我们知道HWM上移就意味着之前的空间已经不够了,也就是说HWM下面的空间都写满了。所以,我们可以知道,low HWM下面的空间都是写满了的。

这样做有什么意义呢?

意义在于low HWM和HWM中间这一部分空间。 这一部分空间在ASSM中是用一块写一块,也就是说有些块是没有经过format的。这种块读起来很危险,所以在全表扫描的时候,oracle要检查这些块,看它是format过的还是没有format过的。 那么说到底low HWM的意义到底是什么呢? 


我们假设不使用low HWM。

这样就是说在HWM之下存在着两种块  1. format过的 2.没有format过的

oracle在做全表扫描的时候要避开没有format过的块,因为这些块不可读,所以必须先去check每个块是format的还是没有format的。这样的开销相当的大。为了减少开销,我们引入了low HWM。


前面已经说过,我们可以确定low HWM下的块全都是format过的了,所以,oracle在全表扫描的时候就可以不检查low HWM之前的块,直接扫描,这样就大大减少了check的工作量,只需要check low HWM和HWM之间的块就可以了 。 


不过其实有个疑点。HWM向上移的时候,一定说明HWM之前的空间都format过了吗?

有没有这样的情况,现在HWM下有1个没有format的数据块,这时来了一个request要插入2个数据块大小的数据,所以HWM根据政策上移了5,而low HWM就上移到原来HWM的位置,可是。。。 这样不是就说明low HWM下面有一个没有format的数据块了吗。难道说low HWM都是在HWM上移之后,数据也插入之后才上移的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值