MERGE JOIN (SEMI)
Description
Performs a merge semi join between two row sources
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
Columns do not need NOT NULL constraints.
This example was developed using Oracle 9.2.0.1 on Windows 2000
This example requires the following table definition
CREATE TABLE t1 (c1 NUMBER,c2 NUMBER);
CREATE TABLE t2 (c1 NUMBER,c2 NUMBER);
The table does not need to be analysed
The statement
SELECT c2
FROM t1
WHERE EXISTS
(
SELECT /*+ MERGE_SJ */ c1 FROM t2
WHERE t1.c1 = t2.c1
);
generates the following execution plan
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 MERGE JOIN (SEMI)
2 1 SORT (JOIN)
3 2 TABLE ACCESS (FULL) OF 'T1'
4 1 SORT (UNIQUE)
5 4 TABLE ACCESS (FULL) OF 'T2'
|