使用OR和IN语句Oracle优化where子句

时间:2013-03-21 15:41:34

标签: oracle oracle11g

我的选择是:

SELECT *
FROM Table1 t1, Table2 t2
WHERE t1.ID=t2.ID
AND (t1.EmpDate IS NULL OR t1.TERMDT > SYSDATE)  -- Item1
AND t2.DIVISION IN ('D1','D2','D3','D4','D5','D6','D7','D8','D9','D10')  --Item2

Item1和Item2分别在Table1,Table2上引起FULL TABLE扫描。 我已将t2.DIVISION编入索引。

如何优化此功能?

我可以用2个SELECT的UNION替换Item1中的OR吗? 任何建议都表示赞赏。

0 个答案:

没有答案