我有一个查询(我在 Oracle DB 上运行),它看起来像:
SELECT
Column1,Column2,Column3 FROM MyDatabase.MyTableName
WHERE
(DELETED = 0)
AND (DATESEEN > TO_DATE ('20/03/2013 12:00:00', 'DD/MM/YYYY HH24:MI:SS'))
AND (DATERECORDED >= TO_DATE('20/06/2013 06:00:00', 'DD/MM/YYYY HH24:MI:SS'))
AND (DATERECORDED < TO_DATE('20/06/2013 12:00:00', 'DD/MM/YYYY HH24:MI:SS'))
查询是动态生成的,动态值如下:
where 子句 (DATESEEN) 的第二行是 90 天前。
where 子句的第三行是查询最后一次运行的时间。(通常是 12 小时前)
where 子句的最后一行是现在的时间。
DATERECORDED 上没有索引,但 DATESEEN 上有。由于我无法控制的原因,我无法在 DATERECORDED 上建立索引。
我的 WHERE 子句中的“DATESEEN”行是完全多余的吗?由于 DATESEEN 总是比 DATERECORDED 早很多,它会被忽略吗?执行计划透露的很少:
先感谢您!