嵌套循环 外连接改变驱动表:
select /*+ LEADING(e) use_nl(e,d)*/ e.ename,e.job,d.dname from emp e left join dept d on e.deptno=d.deptno
SQL> explain plan for
select /*+ LEADING(e) use_nl(e,d)*/ e.ename,e.job,d.dname from emp e left join dept d on e.deptno=d.deptno 2 ;
已解释。
SQL> select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1330733389
----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 420 | 17 (0)| 00:00:01 |
| 1 | NESTED LOOPS OUTER | | 14 | 420 | 17 (0)| 00:00:01 |
| 2 | TABLE ACCESS FULL | EMP | 14 | 238 | 3 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 13 | 1 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | DEPT_PK | 1 | | 0 (0)| 00:00:01 |
----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("E"."DEPTNO"="D"."DEPTNO"(+))
已选择16行。
SQL> explain plan for select /*+ LEADING(d) use_nl(e,d)*/ e.ename,e.job,d.dname from emp e left join dept d on e.deptno=d.deptno;
已解释。
SQL> select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1330733389
----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 420 | 17 (0)| 00:00:01 |
| 1 | NESTED LOOPS OUTER | | 14 | 420 | 17 (0)| 00:00:01 |
| 2 | TABLE ACCESS FULL | EMP | 14 | 238 | 3 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 13 | 1 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | DEPT_PK | 1 | | 0 (0)| 00:00:01 |
----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("E"."DEPTNO"="D"."DEPTNO"(+))
已选择16行。
嵌套循环外连接的时候,无法修改驱动表