dbms_xplan之display函数的使用(三)

2014-11-24 08:53:44 · 作者: · 浏览: 4
O"[NUMBER,22],
"D"."DEPTNO"[NUMBER,22], "D"."DNAME"[VARCHAR2,14],
"D"."LOC"[VARCHAR2,13]
2 - "E"."EMPNO"[NUMBER,22], "E"."ENAME"[VARCHAR2,10],
"E"."JOB"[VARCHAR2,9], "E"."MGR"[NUMBER,22], "E"."HIREDATE"[DATE,7],
"E"."SAL"[NUMBER,22], "E"."COMM"[NUMBER,22], "E"."DEPTNO"[NUMBER,22]
3 - "D"."DEPTNO"[NUMBER,22], "D"."DNAME"[VARCHAR2,14],
"D"."LOC"[VARCHAR2,13]
4 - "D".ROWID[ROWID,10], "D"."DEPTNO"[NUMBER,22]

Note
-----
- dynamic sampling used for this statement

60 rows selected.

/*---------------- 既有"+"也有"-"修饰符的情形-----------------------*/
SQL> select * from table(dbms_xplan.display(null,null,'typical +alias -bytes -cost'));
Plan hash value: 351108634

-------------------------------------------------------------------
| Id | Operation | Name | Rows | Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 00:00:01 |
|* 2 | TABLE ACCESS FULL | EMP | 1 | 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | PK_DEPT | 1 | 00:00:01 |
-------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

1 - SEL$1
2 - SEL$1 / E@SEL$1
3 - SEL$1 / D@SEL$1
4 - SEL$1 / D@SEL$1

Predicate Information (identified by operation id):
---------------------------------------------------

2 - filter("E"."ENAME"='SMITH')
4 - access("E"."DEPTNO"="D"."DEPTNO")

Note
-----
- dynamic sampling used for this statement

29 rows selected.
四、总结
1、display函数仅仅针对预估的执行计划,而不是实际的执行计划
2、display函数显示了预估的执行计划且显示格式灵活,可以以不同的输出格式呈现
3、当所有参数为null的情况下,显示执行计划表中(缺省为plan_table)最后一条语句的执行计划
4、尽管可以通过SQL语句查询plan_table来获取执行计划,建议直接使用display函数,这足够说明一切问题
5、当SQL语句中使用了绑定变量时,由explain plan获得的执行计划是不可靠的