|
呵呵
如果你真正地动手看看
你会发现你的这个猜想更是站不住脚的!
如果你要去研究 oracle internal ,你就要知道怎么样去通过实验的办法来证实或者推翻你的猜想
如果你觉得你的猜想中有矛盾的或者不合理的地方,99.9999% 是你理解错误而不是oracle有问题
因为,如果已经提交,那ITL 就已经可以被覆盖了
所以,根本不会出现ITL你说的情况,在这样的例子下,始终只存在着一个 ITL ,而不会存在多个
至于行上的 ITL 信息,会被清掉的
test for you !
SQL> create table itl( a number) ;
Table created.
SQL> insert into itl select rownum from t where rownum < 11;
10 rows created.
SQL> commit;
Commit complete.
SQL> exec show_space('itl');
Free Blocks.............................1
Total Blocks............................16
Total Bytes.............................131072
Unused Blocks...........................14
Unused Bytes............................114688
Last Used Ext FileId....................3
Last Used Ext BlockId...................1378
Last Used Block.........................2
PL/SQL procedure successfully completed.
SQL> alter system dump datafile 3 block 1379;
Block header dump: 0x00c00563
Object id on Block? Y
seg/obj: 0x68fc csc: 0x00.272a3b5 itc: 1 flg: O typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01
Itl Xid Uba Flag Lck Scn/Fsc
0x1 xid: 0x0005.040.00000117 uba: 0x0080233e.01f9.11 --U- 10 fsc 0x0000.0272a3b7
data_block_dump
===============
tsiz: 0x1fb8
hsiz: 0x26
pbl: 0x070c6c44
bdba: 0x00c00563
flag=-----------
ntab=1
nrow=10
frre=-1
fsbo=0x26
fseo=0x1f7c
avsp=0x1f38
tosp=0x1f38
0xe: pti[0] nrow=10 offs=0
0x12: pri[0] offs=0x1f7c
0x14: pri[1] offs=0x1f82
0x16: pri[2] offs=0x1f88
0x18: pri[3] offs=0x1f8e
0x1a: pri[4] offs=0x1f94
0x1c: pri[5] offs=0x1f9a
0x1e: pri[6] offs=0x1fa0
0x20: pri[7] offs=0x1fa6
0x22: pri[8] offs=0x1fac
0x24: pri[9] offs=0x1fb2
block_row_dump:
tab 0, row 0, @0x1f7c
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 02
tab 0, row 1, @0x1f82
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 03
tab 0, row 2, @0x1f88
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 04
tab 0, row 3, @0x1f8e
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 05
tab 0, row 4, @0x1f94
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 06
tab 0, row 5, @0x1f9a
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 07
tab 0, row 6, @0x1fa0
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 08
tab 0, row 7, @0x1fa6
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 09
tab 0, row 8, @0x1fac
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 0a
tab 0, row 9, @0x1fb2
tl: 6 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 2] c1 0b
end_of_block_dump
End dump data blocks tsn: 2 file#: 3 minblk 1379 maxblk 1379
SQL> update itl set a = -1 where a = 1;
1 row updated.
SQL> commit;
Commit complete.
SQL> alter system dump datafile 3 block 1379;
Block header dump: 0x00c00563
Object id on Block? Y
seg/obj: 0x68fc csc: 0x00.272a3b8 itc: 1 flg: O typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01
Itl Xid Uba Flag Lck Scn/Fsc
0x1 xid: 0x0006.03b.00000173 uba: 0x00800a04.032b.0e --U- 1 fsc 0x0000.0272a3ba
data_block_dump
===============
tsiz: 0x1fb8
hsiz: 0x26
pbl: 0x070c6c44
bdba: 0x00c00563
flag=-----------
ntab=1
nrow=10
frre=-1
fsbo=0x26
fseo=0x1f75
avsp=0x1f38
tosp=0x1f38
0xe: pti[0] nrow=10 offs=0
0x12: pri[0] offs=0x1f75
0x14: pri[1] offs=0x1f82
0x16: pri[2] offs=0x1f88
0x18: pri[3] offs=0x1f8e
0x1a: pri[4] offs=0x1f94
0x1c: pri[5] offs=0x1f9a
0x1e: pri[6] offs=0x1fa0
0x20: pri[7] offs=0x1fa6
0x22: pri[8] offs=0x1fac
0x24: pri[9] offs=0x1fb2
block_row_dump:
tab 0, row 0, @0x1f75
tl: 7 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 3] 3e 64 66
tab 0, row 1, @0x1f82
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 03
tab 0, row 2, @0x1f88
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 04
tab 0, row 3, @0x1f8e
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 05
tab 0, row 4, @0x1f94
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 06
tab 0, row 5, @0x1f9a
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 07
tab 0, row 6, @0x1fa0
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 08
tab 0, row 7, @0x1fa6
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 09
tab 0, row 8, @0x1fac
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 0a
tab 0, row 9, @0x1fb2
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 0b
end_of_block_dump
End dump data blocks tsn: 2 file#: 3 minblk 1379 maxblk 1379
SQL> update itl set a = -2 where a = 2;
1 row updated.
SQL> commit;
Commit complete.
SQL> alter system dump datafile 3 block 1379;
Block header dump: 0x00c00563
Object id on Block? Y
seg/obj: 0x68fc csc: 0x00.272a3bb itc: 1 flg: O typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01
Itl Xid Uba Flag Lck Scn/Fsc
0x1 xid: 0x0007.060.0000012c uba: 0x00800c04.01d9.1a --U- 1 fsc 0x0000.0272a3bd
data_block_dump
===============
tsiz: 0x1fb8
hsiz: 0x26
pbl: 0x070c6c44
bdba: 0x00c00563
flag=-----------
ntab=1
nrow=10
frre=-1
fsbo=0x26
fseo=0x1f6e
avsp=0x1f38
tosp=0x1f38
0xe: pti[0] nrow=10 offs=0
0x12: pri[0] offs=0x1f75
0x14: pri[1] offs=0x1f6e
0x16: pri[2] offs=0x1f88
0x18: pri[3] offs=0x1f8e
0x1a: pri[4] offs=0x1f94
0x1c: pri[5] offs=0x1f9a
0x1e: pri[6] offs=0x1fa0
0x20: pri[7] offs=0x1fa6
0x22: pri[8] offs=0x1fac
0x24: pri[9] offs=0x1fb2
block_row_dump:
tab 0, row 0, @0x1f75
tl: 7 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 3] 3e 64 66
tab 0, row 1, @0x1f6e
tl: 7 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 3] 3e 63 66
tab 0, row 2, @0x1f88
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 04
tab 0, row 3, @0x1f8e
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 05
tab 0, row 4, @0x1f94
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 06
tab 0, row 5, @0x1f9a
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 07
tab 0, row 6, @0x1fa0
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 08
tab 0, row 7, @0x1fa6
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 09
tab 0, row 8, @0x1fac
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 0a
tab 0, row 9, @0x1fb2
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
col 0: [ 2] c1 0b
end_of_block_dump
End dump data blocks tsn: 2 file#: 3 minblk 1379 maxblk 1379 |
|