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 of the row numbers for a table. Since each row is represented by a separate bit, all of the rows within a table can be represented in a fairly condensed form. When a row is selected by the temporary, the bit within the bitmap that corresponds to the selected row is set on. After the temporary bitmap is populated, all of the selected rows can be retrieved in a sorted manner for quick and efficient retrieval. The temporary only represents the row number for the associated selected rows. No table data is present within the temporary, so a table probe operation is typically associated with this temporary 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 will perform pre-fetch or look ahead logic to determine if multiple rows are located on adjacent pages. If so, the table probe will request 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:
- Bitmap scan
During a bitmap scan operation, the entire temporary bitmap is scanned and all of the row addresses contained within the bitmap will be processed. A bitmap scan is generally considered when the optimizer is considering a plan that involves an encoded vector index or if the cost of the random I/O associated with an index probe or scan operation can be reduced by first preprocessing and sorting the row numbers associated with the Table Probe operation.
- Bitmap probe
A bitmap probe operation is used to test row numbers generated by a separate operation against the selected rows of a temporary bitmap. The row numbers can be generated by any operation that constructs a row number for a table. That row number is then used to probe into a temporary bitmap to determine if that row number matches the selection used to generate the temporary bitmap.
Parent topic:
Temporary objects and access methods