我有一个Oracle查询,可以表示如下。
SELECT * FROM
TABLE A
LEFT OUTER JOIN B ON
A.FACT_KEY=B.FACT_KEY AND
A.ENTITY_ID=B.ENTITY_ID
LEFT OUTER JOIN C ON
A.FACT_KEY=C.FACT_KEY AND
A.ENTITY_ID=C.ENTITY_ID AND
C.CREATED_DT BETWEEN 201611 AND 201712
LEFT OUTER JOIN D ON
A.FACT_KEY=D.FACT_KEY AND
A.ENTITY_ID=D.ENTITY_ID
表数量为:表A = 6000万,表B = 1.7亿, 表C = 1.5亿,表D = 2亿
我在表(Fact_key,Entity_id)
列上有一个普通索引
B,C和D.我在created_dt
列的CSS
列上也有正常索引
表C
当我解释查询的计划时,我可以看到表B和D 进行全表扫描,表C用于 Table Access By Rowid 和索引范围扫描。
我有什么方法可以对表B和D
强制执行索引扫描