A secondary index on an index-organized table can be a bitmap index. A bitmap index stores a bitmap for each index key. When bitmap indexes exist on an index-organized table, all the bitmap indexes use a heap-organized mapping table. The mapping table stores the logical rowids of the index-organized table. Each mapping table row stores one logical rowid for the corresponding index-organized table row.
The database accesses a bitmap index using a search key. If the database finds the key, then the bitmap entry is converted to a physical rowid. With heap-organized tables, the database uses the physical rowid to access the base table. With index-organized tables, the database uses the physical rowid to access the mapping table, which in turn yields a logical rowid that the database uses to access the index-organized table.
Figure 5-3 illustrates index access for a query of the departments_iot table.
Figure 5-3: Bitmap Index on an index-organized table, which stores a bitmap for each index key
Bitmapped index
Values and Bitmap
Index values: Each value contains a series of bits, each of which point to a particular row.
Bit values: If a bit is set to 1, it means that the associated row contains that value.
Row: The bit is associated with the ROWID of a row.