BITMAP MERGE

Description

Merges the bitmaps from two or more bitmaps. Usually a parent of BITMAP INDEX (RANGE SCAN)

Versions

This operation is implemented in the following versions

7.3.4
8.0.4
8.0.5
8.0.6
8.1.5
8.1.6
8.1.7
9.0.1
9.2.0
10.1.0
10.2.0

Example

This example was developed using Oracle 9.2.0.1 on Windows 2000

This example requires the following table and index definitions

    CREATE TABLE t1 (c1 NUMBER,c2 NUMBER);

    CREATE BITMAP INDEX i1 ON t1 (c1);
    CREATE BITMAP INDEX i2 ON t1 (c2);

The table does not need to be analysed

The statement

    SELECT /*+ INDEX_COMBINE (t1 i1 i2) */ c1,c2
    FROM t1
    WHERE c1 > 0 AND c2 = 0;

generates the following execution plan

0     SELECT STATEMENT Optimizer=CHOOSE
1   0   TABLE ACCESS (BY INDEX ROWID) OF 'T1'
2   1     BITMAP CONVERSION (TO ROWIDS)
3   2       BITMAP AND
4   3         BITMAP INDEX (SINGLE VALUE) OF 'I2' 
5   3         BITMAP MERGE
6   5           BITMAP INDEX (RANGE SCAN) OF 'I1'