OVERFLOW RECORD

如果当前page已经满了,此时某些record如果变长,长到当前page装不下,这种情况下,就会产生overflow record, 此时DB2

会根据SMAP的信息,把变长后的record存到别的page上。

此时index entry里存的RID不变,而base page会存overflow RID。

做个实验

OVERFLOW之前page的镜像


Data page还有6个字节的free space,因此可以通过update语句把第一条记录搞长点,让record overflow到其他page 上去。overflow之前 RID 是6-01。

执行
UPDATE SYSADM.TBINPBG                                     
SET C1='BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB  
        BBBBBBBBBBBBBBBBBB'                               
WHERE C2='2018-04-13-07.41.26.280880';     

Overflow后page的镜像


可以看出overflow后,index entry上存的RID没变(依然是6-01),但是对应的base record已经是个hole了,

在prefix-subrecord里存了OVERFLOW RECORD的位置7-5E,然后record就OVERFLOW到7-5E上去了。

这样每overflow一次,访问overflow record就要多一次I/O,因此会影响效率。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值