位图索引是为了数据仓库和查询系统,不适合OLTP系统或者多个并发频繁地更新。
它是一种结构,使用一个索引键条目存储指向多行的指针。针对索引键空置,oracle会单独列出一个索引条目。
针对Bitmap索引,支持索引键值or(IN)查询和等值查询
什么情况下新建Bitmap索引
1、位图索引相
drop table emp;
create table dept as select ''||level name ,level no from dual connect by level<11 ;
create table emp(name,deptno) as select t.object_name,mod(rownum,11)+1 from all_objects t;
create bitmap index emp_deptno on emp(deptno);
创建位图联接索引
注意联接条件必须是主键
alter table dept add constraint dept_pk primary key (no);
create bitmap index emp_link_dept on emp( dept.name)
from emp ,dept where dept.no=emp.deptno;
begin
dbms_stats.set_table_stats(ownname => user,tabname => 'DEPT',numrows => 100000000,numblks => 1000);
dbms_stats.set_table_stats(ownname => user,tabname => 'EMP',numrows => 100000000,numblks => 1000);
end;
通过使用表关联,从而使得在两个关联表中进行一些查询时,使用关联bitmap索引