嗯,avg_space指的是低于HWM的block的平均free space
对于这个实验,将block dump出来:
---- insert into t values('d','e');
Start dump data blocks tsn: 2 file#: 3 minblk 323 maxblk 323
buffer tsn: 2 rdba: 0x00c00143 (3/323)
scn: 0x0000.0006c69b seq: 0x01 flg: 0x02 tail: 0xc69b0601
frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
Block header dump: 0x00c00143
Object id on Block? Y
seg/obj: 0x613f csc: 0x00.6c699 itc: 1 flg: O typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01
Itl Xid Uba Flag Lck Scn/Fsc
0x01 xid: 0x0007.036.000000b3 uba: 0x00800468.009c.25 --U- 1 fsc 0x0000.0006c69b
data_block_dump
===============
tsiz: 0x1fb8
hsiz: 0x14
pbl: 0x024d0244
bdba: 0x00c00143
flag=-----------
ntab=1
nrow=1
frre=-1
fsbo=0x14
=20 ### Free Space Beginning Of
fseo=0x1fb1
=8113 ### Free Space End Of; 此处看到实际free space = 8113-20=8093, 比下面的Available space 8091 大,多出的2个字节.
avsp=0x1f9b
=8091 ### Available space 这个应该是看到的avg_space,问题就在这里,不知道这个值是怎么计算的?
tosp=0x1f9b
0xe

ti[0] nrow=1 offs=0
0x12

ri[0] offs=0x1f1
block_row_dump:
tab 0, row 0, @0x1fb1 -8113
tl: 7 fb: --H-FL-- lb: 0x1 cc: 2
---- tl = total length;cc = column count;每个row有3字节的row header;
col 0: [ 1] 64 ----一个字节记录column长度(如果长度小于250,否则用3个字节)。接着是colomn。
col 1: [ 1] 65 ----所以最终是3+1+1+1+1=7
end_of_block_dump
End dump data blocks tsn: 2 file#: 3 minblk 323 maxblk 323