bitmap인덱스와 btree인덱스의 동시이 사용 가능합니다.
또한 현님의 말씀처럼 실행계획이 풀릴 수 도 있으나 비트맵인덱스의 실행계획안에 btree인덱스를 이용한 엑세스패스가 포함될 수도 있습니다.
create table tbl1 (
keydata varchar2(500),
tdate varchar2(8),
tdata varchar2(2000)
) tablespace tbs
pctfree 5
pctused 95;
create index tbl1_idx on tbl1(keydata);
;alter table tbl1 add(
sex varchar2(1)
);
update tbl1
set sex = mod(rownum, 2);
create bitmap index tbl_bt_idx on tbl1(sex);
analyze table tbl1 compute statistics;
select /*+ index(tbl1 tbl_bt_idx) */ *
from tbl1
where keydata like '1%'
and sex = '1'
;
//비트맵인덱스를 사용할 경우 기존 b-tree인덱스가 있는 경우 함께 사용되는 실행계획을 세우는 경우도 있다.
SELECT STATEMENT CHOOSE 69.8587020986092 29 19691
TABLE ACCESS(BY INDEX ROWID) TESTER.TBL1 ANALYZED 69.8587020986092 29 19691
BITMAP CONVERSION(TO ROWIDS)
BITMAP AND
BITMAP INDEX(SINGLE VALUE) TESTER.TBL_BT_IDX
BITMAP CONVERSION(FROM ROWIDS)
SORT(ORDER BY)
INDEX(RANGE SCAN) TESTER.TBL1_IDX ANALYZED 25