ORACLE时间段查询优化的问题
我建了一个表,里面有日期(RQ),时间(SJ)两个字段,都是DATE类型,我建立了一个查询,目的是找到两个日期之间所有的数据。
我的SQL语句是这样写的:
SELECT SID, SSJSID, RQ, SJ,
FROM JING_SS WHERE SID IN
(SELECT SID FROM JING_SS WHERE RQ IN( SELECT RQ FROM JING_SS WHERE TO_CHAR(RQ,'yyyyMMdd') BETWEEN 开始日期 AND 结束日期 ))
AND SID NOT IN (SELECT SID FROM JING_SS WHERE TO_CHAR(SJ,'HH24mmss') < 开始时间 AND TO_CHAR(RQ,'yyyyMMdd') = 开始日期 )
AND SID NOT IN (SELECT SID FROM JING_SS WHERE TO_CHAR(SJ,'HH24mmss') > 结束时间 AND TO_CHAR(RQ,'yyyyMMdd') = 结束日期)
AND SSJSID IN (SELECT SID FROM COM_DW CONNECT BY PRIOR SID = FID START WITH SID = 单位编号 )
ORDER BY SID;
在数据量少的时候查询速度还是能够忍受的,可是现在有大约60万条数据,时间就太长了,我想优化这条查询,请教各路大神!拜谢!!!
分不多,谢谢各位,如果可行马上给分。