Search notes:

Oracle SQL Plan operation BITMAP CONVERSION FROM ROWIDS

The plan operation BITMAP CONVERSION FROM ROWIDS has one child row source which is, as far as I've observed, one of
create table tq84_tab (
   val_1    number,
   val_2    number,
   pad      varchar2(100)
);


insert into tq84_tab
select
   mod(rownum, 1001),
   mod(rownum,   10),
   rpad('*', 100, '*')
from
   dual connect by level <= 10010;

--
-- Create an «ordinary» and a bitmap index:
--
create        index tq84_tab_ix_ord on tq84_tab(val_1);
create bitmap index tq84_tab_ix_bmp on tq84_tab(val_2);

begin
   dbms_stats.gather_table_stats(user, 'tq84_tab');
end;
/

explain plan for
select * from tq84_tab where val_1 = 500 and val_2 = 1;

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 AND                       |                 |
-- |   4 |     BITMAP CONVERSION FROM ROWIDS   |                 |
-- |   5 |      INDEX RANGE SCAN               | TQ84_TAB_IX_ORD |
-- |   6 |     BITMAP INDEX SINGLE VALUE       | TQ84_TAB_IX_BMP |
-- ---------------------------------------------------------------

drop table tq84_tab;

See also

BITMAP CONVERSION TO ROWIDS
SQL statement execution plan operations

Index