姓名:杨宝秋,OCM,ACE。近8年的TB级数据库设计、建设、管理、运行维护、调优经验,也做了7年的Hp和IBM Rs6000的系统管理员,而且是获得了BCFP认证的SAN管理员,现为中国联通黑龙江分公司数据库主管。

ORACLE的数据段压缩技术 part2

上一篇 / 下一篇  2008-02-21 11:18:31 / 个人分类:Oracle

2.2.4.1 data header部分

此部分是总结的部分记录了块中有多少行的数据列存储的顺序记录表中记录的条数及重复记录的条数等信息。

data_block_dump,data header at 0x1103ff07c

===============

tsiz: 0x1f80

hsiz: 0x5b0

pbl: 0x1103ff07c

bdba: 0x01000f14

    76543210

flag=-0------   *flag0表示是压缩块

ntab=2            *ntab表述数据块中表的数量,普通表的数据块中这个值是1

而压缩表大于1

nrow=700         *nrow表示该数据块中的记录数,此项表明该块中含700条记录

frre=-1      

fsbo=0x5b0

fseo=0x106a

avsp=0x2a

tosp=0x2a

   r0_9ir2=0x0                *9ir2表示的是这项压缩功能起始的版本

   mec_kdbh9ir2=0xe

                76543210

   shcf_kdbh9ir2=----------

            76543210

   flag_9ir2=--R---OC

       fcls_9ir2[9]={ 0 32768 32768 32768 32768 32768 32768 32768 32768 }

       perm_9ir2[8]={ 6 7 2 3 5 4 1 0 }*表示实际存储字段顺序也就是说后面物理存储的顺序COL6,COL7,COL2...

       

0x30:pti[0]nrow=24offs=0          *记号表中非重复的记录中有24

0x34:pti[1]nrow=676   offs=24     *重复的记录有676

 

0x38:pri[0]offs=0x1f14

... ...

... ...

0x5ac:pri[698] offs=0x106f

0x5ae:pri[699] offs=0x106a

 

2.2.4.2非重复的各条记录

24行的数据,部分数据省略掉

block_row_dump:

tab 0, row 0, @0x1f14

tl: 31 fb: --H-FL-- lb: 0x0 cc: 8

*fb->flag byte H->header F->first L->last

*cc->column count(列数量)

col 0: [ 2] c1 15          *列长度为2,类型为c115

col 1: *NULL*

col 2: [ 5] 434c45 52 4b

col 3: [ 3] c2 50 03

col 4: [ 2] c2 09

col 5: [ 7] 77 b40c11 01 01 01

col 6: [ 3] c24a46

col 7: [ 5] 53 4d 49 54 48

bindmp: 00 30 08 17 ff 0e cb c2 50 03 ca c2 09 cf 77 b40c11 01 01 01 cb c24a46 cd 53 4d 49 54 48

                 *0030表示为0x0030转为十进制为48,表示这一压缩行供给48行使用

                 *08表示列的数量,即为8

tab 0, row 1, @0x1ef5

tl: 31 fb: --H-FL-- lb: 0x0 cc: 8

col 0: [ 2] c1 15

col 1: *NULL*

col 2: [ 5] 434c45 52 4b

col 3: [ 3] c2 4e 59

col 4: [ 2] c20c

col 5: [ 7] 77 b7 010c01 01 01

col 6: [ 3] c24f4d

col 7: [ 5] 41 44 41 4d 53

bindmp: 00 30 08 17 ff 0e cb c2 4e 59 ca c20ccf 77 b7 010c01 01 01 cb c24f4d cd 41 44 41 4d 53

... ...

... ...

tab 0, row 23, @0x1f7b

tl: 5 fb: --H-FL-- lb: 0x0 cc: 1

col 0: [ 2] c1 15

2.2.4.3重复的各条记录

相同的记录会有同样的指针,例如在本例中,row1row 152349指向的都是同一个位置。

bindmp: 00 05 ca c1 15      *指向记号表中记录的指针,相同的记录同样的指针

tab 1, row 0, @0x1d99

tl: 5 fb: --H-FL-- lb: 0x0 cc: 8

col 0: [ 2] c1 15

col 1: *NULL*

col 2: [ 5] 434c45 52 4b

col 3: [ 3] c2 50 03

col 4: [ 2] c2 09

col 5: [ 7] 77 b40c11 01 01 01

col 6: [ 3] c24a46

col 7: [ 5] 53 4d 49 54 48

bindmp:2c00 01 08 00

tab 1, row 1, @0x1d94

tl: 5 fb: --H-FL-- lb: 0x0 cc: 8

col 0: [ 2] c11f

col 1: [ 2] c2 04

col 2: [ 8] 53 414c45 53 4d 41 4e

col 3: [ 3] c2 4d 63

col 4: [ 2] c2 11

col 5: [ 7] 77 b5 02 14 01 01 01

col 6: [ 3] c2 4b 64

col 7: [ 5] 414c4c45 4e

bindmp:2c00 01 08 07

... ...

... ...

tab 1, row 675, @0x106a

tl: 5 fb: --H-FL-- lb: 0x0 cc: 8

col 0: [ 2] c1 0b

col 1: *NULL*

col 2: [ 5] 434c45 52 4b

col 3: [ 3] c2 4e 53

col 4: [ 2] c2 0e

col 5: [ 7] 77 b6 01 17 01 01 01

col 6: [ 3] c2 50 23

col 7: [ 6] 4d 494c4c45 52

bindmp:2c00 01 08 0b

end_of_block_dump

End dump data blocks tsn: 4 file#: 4 minblk 3860 maxblk 3860

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-07-24  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 5865
  • 日志数: 63
  • 图片数: 1
  • 建立时间: 2008-01-30
  • 更新时间: 2008-06-05

RSS订阅

Open Toolbar