01

定义

 

执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。

Oracle执行计划详解_OracleOracle执行计划详解_Oracle_02

 

02

组成

 

 

 

目标SQL的正文、sql_id和执行计划对应的plan_hash_value

Oracle执行计划详解_Oracle_03

 

Oracle执行计划详解_Oracle_04

 

 

执行计划主体

主要有内部执行步骤、执行顺序、谓词信息、列信息、Cardinality、Cost等

Oracle执行计划详解_Oracle_05

 

Oracle执行计划详解_Oracle_04

 

 

补充信息

是否动态采用(dynamic sampling)、是否SQL Profile

Oracle执行计划详解_Oracle_07

 

03

模块解读

 

主体Header

Oracle执行计划详解_Oracle_08

 

  • ID:序号

  • Operation:当前操作的内容

  • Rows:当前操作的Cardinality,Oracle估计当前操作的返回结果集。

  • Cost:SQL执行的代价

  • Time:Oracle 估计当前操作的时间

主体Header

 

Oracle执行计划详解_Oracle_09

Query Block Name

Oracle执行计划详解_Oracle_10

1

这部分显示的为查询块名和对象别名

2

SEL$为select 的缩写,相应的还有DEL$,INS$,UPD$等

3

DEPT@SEL$1,对应到执行计划中的操作ID为3,即在表DEPT上的查询,DEPT为别名。

Query Block Name

 

Oracle执行计划详解_Oracle_09

Outline Data

Oracle执行计划详解_Oracle_12

1

这部分将执行计划的图形化方式以文本形式来呈现,即转换为提示符方式。

Outline Data

 

Oracle执行计划详解_Oracle_09

Predicate Information

Oracle执行计划详解_Oracle_14
  • Access

  1. 通过某种方式定位了需要的数据,然后读取出这些结果集,叫做Access。

  2. 表示这个谓词条件的值将会影响数据的访问路径(表还是索引)。

  3. Filter

  1. 把所有的数据都访问了,然后过滤掉不需要的数据,这种方式叫做filter 。

  2. 表示谓词条件的值不会影响数据的访问路径,只起过滤的作用。

Predicate Information

 

Oracle执行计划详解_Oracle_09

Column Projection Information

Oracle执行计划详解_Oracle_16

1

执行时每一步骤所返回的列,下面的不同步骤返回了不同的列。

Column Projection Information

 

Oracle执行计划详解_Oracle_17

 

 

Oracle执行计划详解_Oracle_18