块清除

简介: 一般的清除是COMMIT清除,当需要修改(DML)的块大于BUFFER CACHE的10%的时候就会出现延迟块清除,在一般的OLTP系统不会出现这样的情况。
一般的清除是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 
目录
打赏
0
0
0
0
91
分享
相关文章
【JVM】垃圾释放方式:标记-清除、复制算法、标记-整理、分代回收
【JVM】垃圾释放方式:标记-清除、复制算法、标记-整理、分代回收
114 2
|
5月前
|
不要在for与while循环后面写else块
不要在for与while循环后面写else块
61 0
重复文件清除工具,硬盘内存拯救者。。。
重复文件清除工具,硬盘内存拯救者。。。
缓冲区刷新在 C++ 中意味着什么?
缓冲区刷新是将计算机数据从临时存储区域传输到计算机的永久内存。例如,如果我们对文件进行任何更改,我们在一台计算机屏幕上看到的更改会临时存储在缓冲区中。
217 0
清除 C/C++ 中的输入缓冲区
临时存储区称为缓冲区。所有标准输入和输出设备都包含一个输入和输出缓冲区。在标准 C/C++ 中,流被缓冲,例如在标准输入的情况下,当我们按下键盘上的键时,它不会发送到您的程序,而是由操作系统缓冲直到时间分配到那个程序。
239 0
[20180626]延迟块清除与只读表.txt
[20180626]延迟块清除与只读表.txt --//以前测试过延迟块清除与只读表空间的情况.今天测试只读表的情况. --//链接:[20150409]只读表空间与延迟块清除.
1281 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等