暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 索引快速完整扫描

原创 Asher.HU 2021-02-04
1036


一个索引快速全扫描读取未排序的顺序与索引块,因为它们存在于磁盘上。该扫描不使用索引来探测表,而是读取索引而不是表,实际上是将索引本身用作表



8.3.5.1当优化器考虑索引快速完整扫描时

当查询仅访问索引中属性时,优化器将考虑此扫描。

注意:

与完全扫描不同,快速完全扫描无法消除排序操作,因为它无法按顺序读取索引。

提示会强制进行快速的全索引扫描。 INDEX_FFS(table_name index_name)

也可以看看:

Oracle Database SQL语言参考以了解有关INDEX提示的 更多信息

父主题: 索引快速完整扫描


8.3.5.2索引快速完整扫描如何工作

数据库使用多块I / O读取根块以及所有叶块和分支块数据库将忽略分支块和根块,并读取叶块上的索引条目。


8.3.5.3索引快速完整扫描:示例

由于优化程序提示,本示例使用快速的全索引扫描。

以下语句按部门ID的顺序查询部门的ID和名称:

SELECT /*+ INDEX_FFS(departments dept_id_pk) */ COUNT(*)
FROM   departments;

以下计划显示优化器选择了快速全索引扫描:

SQL_ID  fu0k5nvx7sftm, child number 0
-------------------------------------
select /*+ index_ffs(departments dept_id_pk) */ count(*) from departments

Plan hash value: 3940160378
--------------------------------------------------------------------------
| Id | Operation             | Name       | Rows  |Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|  0 | SELECT STATEMENT      |            |       |    2 (100)|          |
|  1 |  SORT AGGREGATE       |            |     1 |           |          |
|  2 |   INDEX FAST FULL SCAN| DEPT_ID_PK |    27 |    2   (0)| 00:00:01 |
--------------------------------------------------------------------------




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论