oracle内核原理-索引范围扫描
1 按照根,枝,叶顺序读取。
2 在oracle中根块永远在段头块的下一个块处,因此索引扫描不需要读取段头。
3 确定索引段头位置,+1 即为根块位置。(根据file#和block进行hash运算得到hash值,定位bucket,检索hash链表)。
4 测试分析
对于一个blevel 为1的索引,进行分析。
创建表T1,在object_id列创建索引,索引的blevel为1,只包含根块和叶块。
create table t1 as select * FROM DBA_OBJECTS;
CREATE INDEX IDX11 ON T1(ID);
多执行几次一下的语句
sql>set autotrace traceonly
如果索引为unique index则扫描最终逻辑读次数为3
SQL> create unique index idx11 on t1(object_id);