Nested Loop Join 指定时用到的 Hint
和 Hash Join 相对应的,通常,利用索引时一般会用到 Nested Loop Join。
下面我们来继续看看如何控制 Nested Loop Join 的使用,以及 Nested Loop Join 的顺序。
- LEADING Hint (指定 Nested Loop Join 顺序)
- USE_NL (指定使用 Nested Loop Join)
依然通过例子来进行说明。
准备:
drop table t1 purge;
drop table t2 purge;
drop table t3 purge;
create table t1(c1 number, c2 number);
create table t2(c1 number, c2 number);
create table t3(c1 number, c2 number);
insert into t1 values (1,1);
insert into t2 values (1,2);
insert into t3 values (1,3);
commit;
由于没有见索引,所以结合时会用到 Hash Join。
SQL> select /*+ leading(b a) */ * from t1 a, t2 b where a.c1=b.c1;
C1 C2 C1 C2
---------- ---------- ---------- ----------
1 1 1 2
Execution Plan
-----------------------------------------------