ORACLE-位图索引-Yangtingkun

前一段又仔细研究了一下bitmap索引。

测试结果和biti的描述有些出入,下面把结果贴处理,大家讨论讨论

 

SQL> create table test_bitmap (id number, name varchar2(20), age number(3));

 

表已创建。

 

SQL> create bitmap index ind_b_test_bitmap_age on test_bitmap (age);

 

索引已创建。

 

SQL> set serverout on

SQL> exec p_unused_space('ind_b_test_bitmap_age', 'index')

total_blocks is 64

total_bytes is 1048576

unused_blocks is 60

unused_bytes is 983040

last_used_extent_file_id is 11

last_used_extent_block_id is 1348

last_used_block is 4

 

PL/SQL 过程已成功完成。

 

SQL> insert into test_bitmap values (1, 'aaa', 1);

 

已创建 1 行。

 

SQL> alter system dump datafile 11 block 1352;

 

系统已更改。

 

 

 

Leaf block dump

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

header address 141643364=0x8714e64

kdxcolev 0

KDXCOLEV Flags = - - -

kdxcolok 0

kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y

kdxconco 4

kdxcosdc 0

kdxconro 2

kdxcofbo 40=0x28

kdxcofeo 16201=0x3f49

kdxcoavs 16161

kdxlespl 0

kdxlende 1

kdxlenxt 0=0x0

kdxleprv 0=0x0

kdxledsz 0

kdxlebksz 16228

row#0[16201] flag: -----, lock: 2

col 0; len 2; (2):  c1 02

col 1; len 6; (6):  02 c0 05 16 00 00

col 2; len 6; (6):  02 c0 05 16 00 07

col 3; len 1; (1):  00 当一个段中,只有一条记录的时候,oracle不是采用bitmap映射的方式,而是直接给出这条记录在这个段中的位置。例如这里的00表示了这个段中的第一条记录[/COLOR]

row#1[16222] flag: ---D-, lock: 2

col 0; NULL

col 1; NULL

col 2; NULL

col 3; NULL

----- end of leaf block dump -----

End dump data blocks tsn: 11 file#: 11 minblk 1352 maxblk 1352

 

源文档 <http://www.itpub.net/thread-114023-1-1.html>

 

创建时间:2022-03-30 21:02
浏览量:0