本篇解释Oracle执行计划中基本项的含义关于生成和显示Oracle执行计划的方法请阅读 http://www.linuxidc.com/Linux/2013-03/80278.htm下面举例进行解释SQL> explain plan for
2 select a.name,b.name
3 from t1 a,t2 b
4 where a.id=b.id
5 and a.id="1";Explained.SQL> set lines 200
SQL> set pagesize 0
SQL> select * from table(dbms_xplan.display());
Plan hash value: 2680223496--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 20 | 5 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 20 | 5 (0)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID| T1 | 1 | 10 | 1 (0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | T1_PK | 1 | | 0 (0)| 00:00:01 |
|* 4 | TABLE ACCESS FULL | T2 | 1 | 10 | 4 (0)| 00:00:01 |
--------------------------------------------------------------------------------------Predicate Information (identified by operation id):
--------------------------------------------------- 3 - access("A"."ID"=1)
4 - filter("B"."ID"=1)17 rows selected.对于Oracle执行计划,并列的行从上往下执行,非并列的行,靠右的先执行。例如本例中:id为3的操作最靠右,所以最先执行,其次是id为2和4的操作较靠右,而且并列,那么按照并列从上往下执行的原则,id为2的操作比id为4的操作先执行。然后执行id为1的操作。那么本例中执行计划按id排序为 3>2>4>1---------------------------------------------------------------------------------------------------------------本例中使用的DBMS_XPLAY显示的执行计划,其中:id:为每个操作的唯一序列号,operation:为每个操作的名称和方式,name:是操作对象
Rows:Oracle估算当前操作影响的行数bytes:Oracle估算当前操作的影响的数据量(单位byte)Cost:Oracle计算出来的执行该操作的代价Time:Oracle估算出来的该操作花费的时间
Oracle 联机重做日志文件恢复(redo log)Oracle 10g SID dump目录相关资讯 Oracle执行计划
- 执行计划出现COLLECTION ITERATOR (07/23/2015 16:25:04)
- Oracle关于执行计划的简要分析 (09/23/2014 18:58:58)
- Oracle使用STORED OUTLINE固化执行 (01/19/2014 13:10:10)
| - Oracle 执行计划中的buffer sort (12/26/2014 19:32:05)
- 使用hint优化Oracle的执行计划 (06/21/2014 09:53:44)
- Oracle获取执行计划的几种方法 (06/17/2013 06:42:24)
|
本文评论 查看全部评论 (0)