索引快速全扫描和索引全扫描是有很大区别的。
关键是如何理解“快速”二字。
索引全扫描是根据索引叶子节点之间的链表(实际上是双向链表)来从一段逐个读取节点到另一端来扫描的。
而快速全扫描,也是要对索引段进行全量访问,只是扫描的方式不是按照链表的指向来一个一个地读取叶子节点。
而是直接从段头块里读取到索引的hwm,然后读取hwm之下的所以数据块内容,这个读取就是直接进行多块读取(全扫描有点像单块读)。
SQL> select count(empno) from emp;
COUNT(EMPNO)
------------
14
执行计划
----------------------------------------------------------
Plan hash value: 2937609675
-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 1 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | INDEX FULL SCAN| PK_EMP | 14 | 1 (0)| 00:00: