oracle中索引快速全扫描和索引全扫描的区别

Posted 秦先生的客栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中索引快速全扫描和索引全扫描的区别相关的知识,希望对你有一定的参考价值。

当进行index full scan的时候 oracle定位到索引的root block,然后到branch block(如果有的话),再定位到第一个leaf block, 然后根据leaf block的双向链表顺序读取。它所读取的块都是有顺序的,也是经过排序的。
而index fast full scan则不同,它是从段头开始,读取包含位图块,root block, 所有的branch block, leaf block,读取的顺序完全由物理存储位置决定,并采取多块读,每次读取db_file_multiblock_read_count个。
所以:
1. 索引全扫描要排序,索引快速全扫描不用排序(索引全扫描会按照叶子块排序返回,而索引快速全扫描则是按照索引段内存储块顺序返回)。
2. 索引全扫描不得读取索引段头,而索引快速全扫描要读取索引段头。





以上是关于oracle中索引快速全扫描和索引全扫描的区别的主要内容,如果未能解决你的问题,请参考以下文章

索引范围扫描 vs 索引跳过扫描 vs 索引快速全扫描

为啥 Oracle 在应该使用索引时使用全表扫描?

Oracle 11G - 未在 Join 上使用 PK 索引,采用全扫描

Oracle数据访问和索引的使用

SQL Tuning 基础概述10

数据库全表扫描的SQL种类