Not necessarily related to bitmap indexes
The
BITMAP
in the name of this operator is not necessarily related to
bitmap indexes:
create table tq84_tab (
id number (5),
val number (3),
txt varchar2(5)
);
begin
dbms_random.seed(42);
end;
/
insert into tq84_tab
select
level,
trunc(dbms_random.value (0, 1000)),
dbms_random.string('a',5)
from
dual connect by level <= 10000;
create index tq84_tab_ix_val on tq84_tab(val);
create index tq84_tab_ix_txt on tq84_tab(txt);
begin
dbms_stats.gather_table_stats(user, 'tq84_tab');
end;
/
explain plan for
select
*
from
tq84_tab
where
val = 974 or
txt = 'knInl'
;
select * from table(dbms_xplan.display(format=>'basic'));
--
-- ---------------------------------------------------------------
-- | Id | Operation | Name |
-- ---------------------------------------------------------------
-- | 0 | SELECT STATEMENT | |
-- | 1 | TABLE ACCESS BY INDEX ROWID BATCHED| TQ84_TAB |
-- | 2 | BITMAP CONVERSION TO ROWIDS | |
-- | 3 | BITMAP OR | |
-- | 4 | BITMAP CONVERSION FROM ROWIDS | |
-- | 5 | INDEX RANGE SCAN | TQ84_TAB_IX_VAL |
-- | 6 | BITMAP CONVERSION FROM ROWIDS | |
-- | 7 | INDEX RANGE SCAN | TQ84_TAB_IX_TXT |
-- ---------------------------------------------------------------
drop table tq84_tab;