SET AUTOTRACE用法查看执行计划,及其索引访问方式

 1、SET AUTOTRACE参数

SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出

2、只能在sql plus下执行

 

SQL> set autotrace on
SQL> select count(*) from TEST_DEPT
  2  /

  COUNT(*)
----------
         5


执行计划
----------------------------------------------------------
Plan hash value: 1645695115

------------------------------------------------------------------------
| Id  | Operation          | Name      | Rows  | Cost (%CPU)| Time     |
------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |           |     1 |     2   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE    |           |     1 |            |          |
|   2 |   TABLE ACCESS FULL| TEST_DEPT |     5 |     2   (0)| 00:00:01 |
------------------------------------------------------------------------

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


统计信息
----------------------------------------------------------
          4  recursive calls--循环递归次数
          0  db block gets--请求数据块在buffer能满足的个数
          7  consistent gets--逻辑IO用户读表并计算行数,数据请求总数在回滚段Buffer中
          0  physical reads--C从磁盘读到Buffer Cache数据块数量
          0  redo size--重做日志大小
        408  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

索引--表的访问方式

1 )full table scan --全表扫描

 依赖于oracle 优化器的初始化参数

2) Index Lookup 索引扫描

  index unique scan--索引唯一扫描

 explain plan for select empno,ename from emp where empno=10

index range scan--索引局部扫描

explain plan for select mgr from emp where mgr=5

index full scan--索引全局扫描

explain plan for select empno,ename from big_emp order by empno,ename

index fast full scan--索引快速全局扫描,不带order by 情况下常发生

explain plan for select  empno,ename from big_emp

index skip scan--索引跳跃式扫描,where 条件列是非索引的前导列情况下常发生

create index i_emp on emo(empno,ename)

explain plan for select job from emo where ename='smith'

3) ROWID 物理ID扫描

Rowid扫描是最快的访问数据方式

posted on 2014-01-03 16:58  liqiangit  阅读(640)  评论(0编辑  收藏  举报