解释计划

来源:互联网 发布:中行校园淘宝卡骗局 编辑:程序博客网 时间:2024/05/16 17:25

解释计划:SQL语句预期的执行计划

执行计划:SQL语句实际的执行计划

SQL语句有可能不按照解释计划执行。


1.查看解释计划

  a.explain plan for

  b.set autotrace


explain plan for 将执行计划存储在plan_table中

最常用的PLAN_TABLE表中的列:

描述

ID 为每一个步骤分配的唯一编号

OPERATION 这一步骤所进行的内部运算

OPTIONS 运算列的附加说明(附于OPERATION)

OBJEC_NAME 表或索引的名称

CARDINALITY 预期的运算所要访问的行数

BYTES 预期的运算的字节数

COST 由优化器确定的运算所需要的成本值

TIME 预计进行运算所需要的以秒为计量单位的时间

ACCESS_PREDICATES 用来在访问结构(一般为索引)中确定数据行所在位置的条件

FILTER_PREDICATES 用来在数据行被访问后进行筛选的条件


SQL> explain plan for select * from hr.employees;已解释。SQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 1445457117-------------------------------------------------------------------------------| Id  | Operation         | Name      | Rows  | Bytes | Cost (%CPU)| Time     |-------------------------------------------------------------------------------|   0 | SELECT STATEMENT  |           |   107 |  7383 |     3   (0)| 00:00:01 ||   1 |  TABLE ACCESS FULL| EMPLOYEES |   107 |  7383 |     3   (0)| 00:00:01 |-------------------------------------------------------------------------------已选择8行。SQL>


set autotrace 默认为off,设置只在当前会话有效,不会将执行计划存储在plan_table中

SQL> set autotrace traceonly explainSQL> select * from hr.employees;执行计划----------------------------------------------------------Plan hash value: 1445457117-------------------------------------------------------------------------------| Id  | Operation         | Name      | Rows  | Bytes | Cost (%CPU)| Time     |-------------------------------------------------------------------------------|   0 | SELECT STATEMENT  |           |   107 |  7383 |     3   (0)| 00:00:01 ||   1 |  TABLE ACCESS FULL| EMPLOYEES |   107 |  7383 |     3   (0)| 00:00:01 |-------------------------------------------------------------------------------SQL>


dbms_xplan包中常用函数




0 0
原创粉丝点击