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

Oracle 19C 位图索引范围扫描

原创 Asher.HU 2021-02-04
512

这种类型的访问路径使用位图索引来查找值的范围。


8.4.4.1当优化器考虑位图索引范围扫描时

当谓词选择一个值范围时,优化器将考虑该访问路径。

扫描中的范围可以是有界的,也可以是无界的。优化器通常选择范围扫描以进行选择性查询。

也可以看看:

 索引范围扫描 

 

8.4.4.2位图索引范围扫描如何工作

此扫描的工作方式与B树范围扫描类似。

例如,下表表示该sh.customers.cust_year_of_birth的位图索引中的三个值如果查询请求所有1917年之前出生的客户,则数据库可以扫描此索引以查找小于的值1917,然后获取具有的行的行标识1

表8-6位图索引条目

栏值在范围内开始Rowid范围内的末端Rowid范围中的第一行范围第二行范围第三行范围第四行范围第五行范围第六行

1913

AAA ...

CCC ...

0

0

0

0

0

1个

1917

AAA ...

CCC ...

1个

0

1个

1个

1个

0

1918

AAA ...

CCC ...

0

1个

0

0

0

0

1918

DDD ...

EEE ...

1个

0

1个

0

1个

1个

也可以看看:

 索引范围扫描 

 

8.4.4.3位图索引范围扫描:示例

本示例使用范围扫描来选择一年之前出生的客户。

查询sh.customers表将选择1918年之前出生的客户的姓名:

SELECT cust_last_name, cust_first_name
FROM   customers
WHERE  cust_year_of_birth < 1918

以下计划显示数据库获取cust_year_of_birth低于键的所有位图1918(步骤3),将位图转换为rowid(步骤2),然后获取行(步骤1):

SQL_ID  672z2h9rawyjg, child number 0
-------------------------------------
SELECT cust_last_name, cust_first_name FROM   customers WHERE
cust_year_of_birth < 1918

Plan hash value: 4198466611
---------------------------------------------------------------------------------------------
|Id| Operation                           | Name              |Rows|Bytes|Cost(%CPU)|Time    |
---------------------------------------------------------------------------------------------
| 0| SELECT STATEMENT                    |                   |    |     |421 (100)|         |
| 1|  TABLE ACCESS BY INDEX ROWID BATCHED| CUSTOMERS         |3604|68476|421   (1)|00:00:01 |
| 2|   BITMAP CONVERSION TO ROWIDS       |                   |    |     |         |         |
|*3|    BITMAP INDEX RANGE SCAN          | CUSTOMERS_YOB_BIX |    |     |         |         |
---------------------------------------------------------------------------------------------

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

评论