深入理解Oracle索引(2):INDEX UNIQUE SCAN,INDEX FULL SCAN和INDEX FAST FULL SCAN

本文详细介绍了Oracle数据库中的INDEX FULL SCAN和INDEX FAST FULL SCAN操作,强调了它们在SQL查询中的应用情况。INDEX FULL SCAN按照索引叶子节点顺序获取数据,适合有序结果集,而INDEX FAST FULL SCAN采用多块读取,适用于无序结果集,速度通常更快。在特定场景下,如查询记录总数时,INDEX FAST FULL SCAN表现高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       ㈠ INDEX UNIQUE SCAN
       
       
果表上有唯一索引, 搜索索引列时会用上INDEX UNIQUE SCAN
       
       原来Index Unique Scan和Index Range Scan在B Tree上的搜索路径是一样的
       只是Index Unique Scan在找到应该含有要找的Index Key的block后便停止了搜索,因为该键是唯一的
       而Index Range Scan还要循着指针继续找下去直到条件不满足时
       
       Oracle9i Database Performance Tuning Guide and Reference提到:
       This access path is used when all columns of a unique (B-tree) index are specified with equality conditions

       下面测试一下这句话的真实性:  

hr@ORCL> create table t (id number,name varchar2(10));
hr@ORCL> create unique index ind_t on t (id);
hr@ORCL> insert into t values(1,'a');
hr@ORCL> insert into t values(2,'b');
hr@ORCL> commit;
hr@ORCL> set autot trace exp
hr@ORCL> select * from t where id=1;

Execution Plan
----------------------------------------------------------
Plan hash value: 1366100657

-------------------------------------------------------------------------------------
| Id  | Operation                   | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |       |     1 |    20 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值