Performs a merge anti join between two row sources
This operation is implemented in the following versions
Note that the columns involved in the anti-join must both have NOT NULL constraints. Other permutations result in FILER execution plans.
This example was developed using Oracle 188.8.131.52 on Windows 2000
This example requires the following table definition
CREATE TABLE t1 (c1 NUMBER NOT NULL,c2 NUMBER); CREATE TABLE t2 (c1 NUMBER NOT NULL,c2 NUMBER);
The table does not need to be analysed
SELECT c2 FROM t1 WHERE c1 NOT IN ( SELECT /*+ MERGE_AJ */ c1 FROM t2 );
generates the following execution plan
0 SELECT STATEMENT Optimizer=CHOOSE 1 0 MERGE JOIN (ANTI) 2 1 SORT (JOIN) 3 2 TABLE ACCESS (FULL) OF 'T1' 4 1 SORT (UNIQUE) 5 4 VIEW OF 'VW_NSO_1' 6 5 TABLE ACCESS (FULL) OF 'T2'