我正在考虑在Oracle 11g数据库上为具有大约10亿行的表添加位图连接索引。每月仅在周末过程中更新一次。我的事实表上有80个奇数列,并连接到许多维表。与行数相比,大多数列的基数都低(都小于.001%)。
现在,我的问题是,是否构建了如下所示的位图连接索引(field1均为PK):
CREATE BITMAP INDEX testidx_1
on fact(dimension.field2)
from fact, dimension
where fact.field1 = dimension.field1;
我知道我是否愿意
select fact.fieldx, fact2.fieldy, dimension.field2
from fact, dimension
where fact.field1 = dimension.field1;
它将最佳地使用位图连接索引。
但是,说我输入了这样的内容:
select fact.fieldx, fact2.fieldy, dimension.field2
from fact, dimension
where fact.field1 = dimension.field1
and dimension.field2 = 'somevalue'
然后将不使用位图连接索引吗?我需要为每个要选择的条件值创建一个BJI吗?
我以此为参考:https://logicalread.com/oracle-11g-best-uses-bitmap-join-index-mc02/#.XCz2oVxKiUl