现在的位置: 首页 > 综合 > 正文

BMP位图索引详解

2011年02月25日 ⁄ 综合 ⁄ 共 598字 ⁄ 字号 评论关闭

下面假设我们要在 EMP 表的 JOB 列上创建一个位图索引,如下:

 

SQL> create BITMAP index job_idx on emp(job);

 

Index created.

 

 

Oracle 在索引中存储的内容如表 11.-6 所示。


 

 

 

表 11.-6 Oracle 如何存储 JOB-IDX 位图索引


 

值/行


1


2


3


4


5


6


7


8


9


10


11


12


13


14


ANALYST 


0


0


0


0


0


0


0


1


0


1


0


0


1


0


CLERK 


1


0


0


0


0


0


0


0


0


0


1


1


0


1


MANAGER 


0


0


0


1


0


1


1


0


0


0


0


0


0


0


PRESIDENT 


0


0


0


0


0


0


0


0


1


0


0


0


0


0


SALESMAN 


0


1


1


0


1


0


0


0


0


0


0


0


0


0



11.-6显示了第8、10和13行的值为ANALYST,而第4、6和7行的值为MANAGER。在此还显示了所有行都不为null(位图索引可以存储
null条目;如果索引中没有null条目,这说明表中没有null行)。如果我们想统计值为MANAGER的行数,位图索引就能很快地完成这个任务。如
果我们想找出JOB为CLERK或MANAGER的所有行,只需根据索引合并它们的位图,如表11.-7所示。



 

 

 

 

表 11.-7 位 OR 的表示


 

值/行


1


2


3


4


5


6


7


8


9


10


11


12


13


14


CLERK 


1


0


0


0


0


0


0


0


0


0


1


1


0


1


MANAGER 


0


0


0


1


0


1


1


0


0


0


0


0


0


0


CLERK或MANAGER 


1


0


0


1


0


1


1


0


抱歉!评论已关闭.