commit时的块清除

来源:互联网 发布:企业信息化软件需求 编辑:程序博客网 时间:2024/06/08 02:22

    commit的时候最重要的事情是块清除(影响的块不超过缓冲的10%),块清除做的事情是清除块头中的事务信息。主要观察dump block的内容,block中的flag注释是:

Flags: 1nibble。---- = transaction is active, or committed pending cleanout
C--- = transaction has been committed and locks cleaned out
-B-- = this undo record contains the undo for this ITL entry
--U- = transaction committed (maybe long ago); SCN is an upper bound
---T = transaction was still active at block cleanout SCN

      详细请见:  http://blog.csdn.net/guogang83/article/details/7870893

create table T
(
  X INTEGER,
  Y INTEGER
);

insert into t values(9,1)

update t set x=10;

Block header dump:  0x0140017d
 Object id on Block? Y
 seg/obj: 0xc9c8  csc: 0x00.12af7a  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1400179 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl           Xid                                                         Uba         Flag   Lck        Scn/Fsc
0x01   0x0007.013.00000193  0x00800331.0167.08  ----    1  fsc 0x0000.00000000
0x02   0x000a.011.0000018f  0x00800c7b.00fb.27  C---    0  scn 0x0000.0012ae8c
 
data_block_dump,data header at 0x4d18464
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x04d18464
bdba: 0x0140017d
     76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f8f
avsp=0x1f7b
tosp=0x1f7b
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f8f
block_row_dump:
tab 0, row 0, @0x1f8f
tl: 9 fb: --H-FL-- lb: 0x1  cc: 2
col  0: [ 2]  c1 0b
col  1: [ 2]  c1 02
end_of_block_dump

commit;


Block header dump:  0x0140017d
 Object id on Block? Y
 seg/obj: 0xc9c8  csc: 0x00.12af7a  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1400179 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl           Xid                                                          Uba         Flag  Lck        Scn/Fsc
0x01   0x0007.013.00000193  0x00800331.0167.08  --U-    1  fsc 0x0000.0012af8e
0x02   0x000a.011.0000018f  0x00800c7b.00fb.27  C---    0  scn 0x0000.0012ae8c
 
data_block_dump,data header at 0x4d18464
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x04d18464
bdba: 0x0140017d
     76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f8f
avsp=0x1f7b
tosp=0x1f7b
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f8f
block_row_dump:
tab 0, row 0, @0x1f8f
tl: 9 fb: --H-FL-- lb: 0x1  cc: 2
col  0: [ 2]  c1 0b
col  1: [ 2]  c1 02
end_of_block_dump

delete from t;

Block header dump:  0x0140017d
 Object id on Block? Y
 seg/obj: 0xc9c8  csc: 0x00.12b265  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1400179 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl           Xid                                                        Uba          Flag  Lck        Scn/Fsc
0x01   0x0007.013.00000193  0x00800331.0167.08  C---    0  scn 0x0000.0012af8e
0x02   0x0003.018.000001ac  0x0080136f.01f0.3c  ----    1  fsc 0x0007.00000000
 
data_block_dump,data header at 0x4d18464
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x04d18464
bdba: 0x0140017d
     76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f8f
avsp=0x1f7b
tosp=0x1f84
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f8f
block_row_dump:
tab 0, row 0, @0x1f8f
tl: 2 fb: --HDFL-- lb: 0x2
end_of_block_dump

commit;
Block header dump:  0x0140017d
 Object id on Block? Y
 seg/obj: 0xc9c8  csc: 0x00.12b265  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1400179 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl                             Xid                                       Uba         Flag  Lck        Scn/Fsc
0x01   0x0007.013.00000193  0x00800331.0167.08  C---    0  scn 0x0000.0012af8e
0x02   0x0003.018.000001ac  0x0080136f.01f0.3c  --U-    1  fsc 0x0007.0012b27b
 
data_block_dump,data header at 0x4d18464
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x04d18464
bdba: 0x0140017d
     76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f8f
avsp=0x1f7b
tosp=0x1f84
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f8f
block_row_dump:
tab 0, row 0, @0x1f8f
tl: 2 fb: --HDFL-- lb: 0x2
end_of_block_dump