Joins two or more non-unique indexes on the same table
This operation is implemented in the following versions
|
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 NOT NULL, c2 NUMBER NOT NULL, c3 NUMBER NOT NULL ); CREATE INDEX i1 ON t1 (c2); CREATE INDEX i2 ON t1 (c3); ANALYZE TABLE t1 COMPUTE STATISTICS;
The statement
SELECT /*+ AND_EQUAL (t1 i1 i2) */ c1 FROM t1 WHERE c2 = 0 AND c3 = 0;
generates the following execution plan
0 SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (BY INDEX ROWID) OF 'T1' 2 1 AND-EQUAL 3 2 INDEX (RANGE SCAN) OF 'I1' (NON-UNIQUE) 4 2 INDEX (RANGE SCAN) OF 'I2' (NON-UNIQUE)