oracle資料塊中資料儲存(摘錄)

aaqwsh發表於2011-03-03
 
90CA3C0 00000000 00000000 02012C00 0A04C102 [.........,......]
90CA3D0 61616161 61616161 002C6161 03C10202 [aaaaaaaaaa,.....]
90CA3E0 6161610A 61616161 2C616161 C1020200 [.aaaaaaaaaa,....]
90CA3F0 61610A02 61616161 61616161 70940602 [..aaaaaaaaaa...p]
Block header dump: 0x01800022
 Object id on Block? Y
 seg/obj: 0xcf2c csc: 0x00.217093 itc: 2 flg: O typ: 1 - DATA
     fsl: 0 fnx: 0x0 ver: 0x01
 
 Itl           Xid                  Uba         Flag Lck        Scn/Fsc
0x01   0x0002.00b.00000200 0x00800345.0179.19 --U-    1 fsc 0x0000.00217094
0x02   0x0003.02a.0000020d 0x008003db.0161.26 C---    0 scn 0x0000.00217045
 
data_block_dump,data header at 0x90c845c
===============
tsiz: 0x1fa0   --Total data area size: 8k的block: 8192-20(block head)-24(Transaction Header)-24*2(一個事務條)-4(block tail)=8096(0x1fa0)
--事物列表可能大於2

hsiz: 0x18     --data head size   
pbl: 0x090c845c --Pointer to buffer holding the block

bdba: 0x01800022
     76543210
flag=--------
ntab=1                      --表示存放一張表的資料,當存放cluster時,可能出現ntab〉1
nrow=3                      --表示現在該block 內有三行資料
frre=-1
fsbo=0x18                  --表示可以放資料的空間的起始位置(發現該值和hsiz保持一至)
fseo=0x1f6d                --表示可以存放資料的end位置: 8062
avsp=0x1f55
tosp=0x1f55
0xe:pti[0] nrow=3 ffs=0
0x12:pri[0] ffs=0x1f8f   --0x1f8f+tl:17=8079+17=8096
0x14:pri[1] ffs=0x1f7e  --0x1f7e+t1:17=8062+17=8079
0x16:pri[2] ffs=0x1f6d   --0x1f6d+t1:17=8045+17=8062
block_row_dump:
tab 0, row 0, @0x1f8f
tl: 17 fb: --H-FL-- lb: 0x0 cc: 2
col 0: [ 2] c1 02
col 1: [10] 61 61 61 61 61 61 61 61 61 61
tab 0, row 1, @0x1f7e
tl: 17 fb: --H-FL-- lb: 0x0 cc: 2
col 0: [ 2] c1 03
col 1: [10] 61 61 61 61 61 61 61 61 61 61
tab 0, row 2, @0x1f6d
tl: 17 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 04
col 1: [10] 61 61 61 61 61 61 61 61 61 61
end_of_block_dump
End dump data blocks tsn: 7 file#: 6 minblk 33 maxblk 34
 
分析上面的灰色部分,翻譯如下:
 
90CA3C0 00000000 00000000 02012C00 0A04C102 [.........,......]
翻譯:                         002C0102 02C1040A  
          . . . . . . . . . , . . . . . .                    
90CA3D0 61616161 61616161 002C6161 03C10202 [aaaaaaaaaa,.....]
          61616161 61616161 61612C00 0202C103
          a a a a a a a a a a, . . . . .
90CA3E0 6161610A 61616161 2C616161 C1020200 [.aaaaaaaaaa,....]
          0A616161 61616161 6161612C 000202C1
          . a a a a a a a a a a,   . . . .
90CA3F0 61610A02 61616161 61616161 70940602 [..aaaaaaaaaa...p]
          020A6161 61616161 61616161 02069470 –最後四位為block tail
          . . a a a a a a a a a a   . . . P
0x12:pri[0] ffs=0x1f8f 對應得實體地址為90CA3EB-90CA3FB共17個位元組
0x14:pri[1] ffs=0x1f7e  對應得實體地址為90CA3DA-90CA3EA共17個位元組
0x16:pri[2] ffs=0x1f6d  對應得實體地址為90CA3C9-90CA3D9共17個位元組

90CA3EB  = 90C8400+ (20+24+48)/16+ 1f8f
 
0x090c845c --Pointer to buffer holding the block
=90C8400+ (20+24+48)/16

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758322/viewspace-688386/,如需轉載,請註明出處,否則將追究法律責任。

相關文章