oracle执行计划
2013-06-22 12:32
176 查看
SQL> set autot trace
SQL> select count(*) from dba_objects;
Execution Plan
----------------------------------------------------------
Plan hash value: 2598313856
-----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 30 (4)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | | |
| 2 | VIEW | DBA_OBJECTS | 8882 | | 30 (4)| 00:00:01 |
| 3 | UNION-ALL | | | | | |
|* 4 | FILTER | | | | | |
|* 5 | HASH JOIN | | 10018 | 743K| 29 (4)| 00:00:01 |
| 6 | TABLE ACCESS FULL | USER$ | 28 | 84 | 2 (0)| 00:00:01 |
|* 7 | TABLE ACCESS FULL | OBJ$ | 10018 | 714K| 26 (0)| 00:00:01 |
|* 8 | TABLE ACCESS BY INDEX ROWID| IND$ | 1 | 7 | 2 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | I_IND1 | 1 | | 1 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 16 | 1 (0)| 00:00:01 |
| 11 | INDEX FULL SCAN | I_LINK1 | 1 | 13 | 0 (0)| 00:00:01 |
| 12 | TABLE ACCESS CLUSTER | USER$ | 1 | 3 | 1 (0)| 00:00:01 |
|* 13 | INDEX UNIQUE SCAN | I_USER# | 1 | | 0 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - filter("O"."TYPE#"<>1 AND "O"."TYPE#"<>10 OR "O"."TYPE#"=1 AND (SELECT 1 FROM
"SYS"."IND$" "I" WHERE "I"."OBJ#"=:B1 AND ("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR
"I"."TYPE#"=3 OR "I"."TYPE#"=4 OR "I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9))=1)
5 - access("O"."OWNER#"="U"."USER#")
7 - filter("O"."NAME"<>'_NEXT_OBJECT' AND "O"."NAME"<>'_default_auditing_options_'
AND "O"."LINKNAME" IS NULL)
8 - filter("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR "I"."TYPE#"=3 OR "I"."TYPE#"=4 OR
"I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9)
9 - access("I"."OBJ#"=:B1)
13 - access("L"."OWNER#"="U"."USER#")
Note
-----
- dynamic sampling used for this statement --表示表没有做分析,使用了动态采样的方式来获取表数据信息
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2267 consistent gets
0 physical reads
0 redo size
412 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
执行计划顺序
6,7,5,9,8,4,11,13,12,10,3,2,1,0
Id: 是一个序列号
Operation: 是当前操作的内容
Rows: oracle估算当前操作的返回结果集
Cost (%CPU):oracle计算出来的一个数值,用于说明SQL执行的代价
Time: oracle估算当前操作的时间
access:表示这个条件的值将会影响数据的访问路径
filter: 表示条件的值并不会影响数据访问路径,只起到过滤的作用
SQL> select count(*) from dba_objects;
Execution Plan
----------------------------------------------------------
Plan hash value: 2598313856
-----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 30 (4)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | | |
| 2 | VIEW | DBA_OBJECTS | 8882 | | 30 (4)| 00:00:01 |
| 3 | UNION-ALL | | | | | |
|* 4 | FILTER | | | | | |
|* 5 | HASH JOIN | | 10018 | 743K| 29 (4)| 00:00:01 |
| 6 | TABLE ACCESS FULL | USER$ | 28 | 84 | 2 (0)| 00:00:01 |
|* 7 | TABLE ACCESS FULL | OBJ$ | 10018 | 714K| 26 (0)| 00:00:01 |
|* 8 | TABLE ACCESS BY INDEX ROWID| IND$ | 1 | 7 | 2 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | I_IND1 | 1 | | 1 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 16 | 1 (0)| 00:00:01 |
| 11 | INDEX FULL SCAN | I_LINK1 | 1 | 13 | 0 (0)| 00:00:01 |
| 12 | TABLE ACCESS CLUSTER | USER$ | 1 | 3 | 1 (0)| 00:00:01 |
|* 13 | INDEX UNIQUE SCAN | I_USER# | 1 | | 0 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - filter("O"."TYPE#"<>1 AND "O"."TYPE#"<>10 OR "O"."TYPE#"=1 AND (SELECT 1 FROM
"SYS"."IND$" "I" WHERE "I"."OBJ#"=:B1 AND ("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR
"I"."TYPE#"=3 OR "I"."TYPE#"=4 OR "I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9))=1)
5 - access("O"."OWNER#"="U"."USER#")
7 - filter("O"."NAME"<>'_NEXT_OBJECT' AND "O"."NAME"<>'_default_auditing_options_'
AND "O"."LINKNAME" IS NULL)
8 - filter("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR "I"."TYPE#"=3 OR "I"."TYPE#"=4 OR
"I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9)
9 - access("I"."OBJ#"=:B1)
13 - access("L"."OWNER#"="U"."USER#")
Note
-----
- dynamic sampling used for this statement --表示表没有做分析,使用了动态采样的方式来获取表数据信息
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2267 consistent gets
0 physical reads
0 redo size
412 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
执行计划顺序
6,7,5,9,8,4,11,13,12,10,3,2,1,0
Id: 是一个序列号
Operation: 是当前操作的内容
Rows: oracle估算当前操作的返回结果集
Cost (%CPU):oracle计算出来的一个数值,用于说明SQL执行的代价
Time: oracle估算当前操作的时间
access:表示这个条件的值将会影响数据的访问路径
filter: 表示条件的值并不会影响数据访问路径,只起到过滤的作用
相关文章推荐
- Oracle 执行计划 提示 'PLAN_TABLE' is old version 解决方法
- ORACLE中查看SQL执行计划的几种方法
- 例说一个ORACLE执行计划的查看
- oracle 执行计划顺序是怎么看的
- oracle执行计划和hint的认识
- Oracle执行计划之SQL优化
- Oracle执行计划的查看
- Oracle执行计划详解
- [转]Oracle 执行计划(Explain Plan) 说明
- 实习第6天 Oracle执行计划 联想超级本只能重装win8
- Oracle之深入浅出(二)--SQL原理、解释计划与执行计划
- 看懂Oracle执行计划
- ORACLE使用STORED OUTLINE固化执行计划--私有和公有
- oracle中获取执行计划
- Oracle执行计划详解(基础入门)
- ORACLE获得执行计划的相关视图
- Oracle中获取执行计划的几种方法分析
- Oracle查看执行计划的几种方式
- Oracle获取执行计划方法