Temporary bitmap
The temporary bitmap is a temporary object that allows the optimizer to sequence rows based upon their row address (their row number). The bitmap can be either scanned or probed by the optimizer to satisfy different operations of the query.
A temporary bitmap is a data structure that uses a bitmap to represent all the row numbers for a table. Since each row is represented by a separate bit, all the rows within a table can be represented in a fairly condensed form. When a row is selected, the bit within the bitmap that corresponds to the selected row is set on. After the temporary bitmap is populated, all the selected rows can be retrieved in a sorted manner for quick and efficient retrieval. The temporary bitmap only represents the row number for the associated selected rows.
No table data is present within the temporary bitmap. A table probe operation is typically associated with the bitmap in order to retrieve the underlying table data. Because the bitmap is by definition sorted, the random I/O associated with the table probe operation can be performed more efficiently. The database manager performs pre-fetch or look-ahead logic to determine if multiple rows are located on adjacent pages. If so, the table probe requests a larger I/O to bring the rows into main memory more efficiently.
A temporary bitmap is an internal data structure and can only be created by the database manager.
Visual explain icon:
