块清除

一般的清除是COMMIT清除,当需要修改(DML)的块大于BUFFER CACHE的10%的时候就会出现
延迟块清除,在一般的OLTP系统不会出现这样的情况。以为修改的数据量巨大,执行COMMIT的时候
只会修改ITL FLAG信息(ITL FLAG信息是U,一般的COMMIT清除是C,在没有提交的时候是没有记录的就是-----)和SCN,而对于在行上LB信息就不会清除(这叫FAST COMMIT,也是为什么COMMIT及时在数据量
很大的情况下依然很快的原因),只有依靠下次的延迟的块清除,
延迟的块清除不但会导致SELECT语句生成REDO,而且会把原本干净的已经写入磁盘的
数据块,重新读入BUFFER CACHE,然后完成延迟块清除后重新写入磁盘,这就导致了
大量的不必要的物理写,清除其实就是清理块的头信息的ITL信息,ITL信息能够记录哪行被修改,
同时ITL.XID 能够对应事物信息,同时也能找到UNDO HEADER,
ITL.UBA能够找到UNDO块的信息
在行中的lb(lock BTTE)记录了ITL信息,也就是在ITL对应哪一行

Block header dump:  0x024014ed
Object id on Block? Y
seg/obj: 0x2e61  csc: 0x00.ec539  itc: 1  flg: - typ: 1 - DATA
fsl: 0  fnx: 0x0 ver: 0x01
Itl    Xid                       Uba                     Flag  Lck      Scn/Fsc         
0x01   xid:  0x0005.000.00000805 uba: 0x00c02619.0304.01  ---- 1        fsc 0x0000.00000000
tab 0, row 0, @0x7aa 
tl: 14 fb: --H-FL-- lb: 0x1 cc: 4 
col  0: [ 2]  c1 02 
col  1: [ 4]  52 4f 57 31 

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

转载于:http://blog.itpub.net/7728585/viewspace-764051/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值