【发布时间】:2015-03-21 03:48:34
【问题描述】:
我正在尝试为此查询创建位图索引:
SELECT "TAB2"."TAB2ID","TAB1"."TAB1ID"
FROM "TAB1","TAB2"
WHERE ((("TAB1"."YESNO" = 'Y' )
AND ("TAB2"."LOCID" = "TAB1"."LOCID" ) )
AND ("TAB2"."YESNO" = 'Y' ) )
ORDER BY "TAB1"."LOCNO";
我尝试了多个位图索引,但它们似乎都没有被使用,即使我尝试给查询一个使用位图索引的提示。即使只是 tab2 上的索引似乎也没有任何作用。
这是我尝试过的一个,但没有任何效果,即使在收集了索引和表统计信息之后:
CREATE BITMAP INDEX TAB2_TAB1_BIT_IDX
ON TAB2(TAB2.YESNO,TAB1.YESNO)
FROM TAB1 , TAB2
WHERE TAB2.LOCID = TAB1.LOCID
Tab1 包含 2 N 和 29 Y,Tab2 包含 30000 'N' 和 240000 'Y'。 位图索引的代码应该是什么,还有其他方法可以优化这个查询吗?
【问题讨论】:
标签: database oracle oracle11g indexing