ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于索引组织表IOT

关于索引组织表IOT

原创 Linux操作系统 作者:lfree 时间:2007-03-23 00:00:00 0 删除 编辑

摘自oracle高效设计:

create table t
( a int,
b int,
c int,
primary key (a,b)
)
organization index;

create index t_idx_c on t(c);

set autotrace traceonly explain

set autotrace traceonly explain
select a, b from t where c = 55;

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

----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 39 | 1 (0)| 00:00:01 |
|* 1 | INDEX RANGE SCAN| T_IDX_C | 1 | 39 | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - access("C"=55)

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

注意执行计划没有table access by rowid,IOT表的逻辑rowid位于索引结构中,
主键值已经存在rowid里面。


修改c为非NULL,执行:

SELECT ROWID, t.* FROM t;

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

----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 101 | 9595 | 1 (0)| 00:00:01 |
| 1 | INDEX FULL SCAN | T_IDX_C | 101 | 9595 | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------

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

可以发现作索引全扫描T_IDX_C 就可以获得结果集。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-82989/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2485
  • 访问量
    6292060