oracle内核原理-索引范围扫描

1 按照根,枝,叶顺序读取。

2 在oracle中根块永远在段头块的下一个块处,因此索引扫描不需要读取段头。

确定索引段头位置+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

oracle内核原理-索引范围扫描

如果索引为unique index则扫描最终逻辑读次数为3

SQL> create unique index idx11 on t1(object_id);

oracle内核原理-索引范围扫描