即使找不到记录,查询也需要很长时间的情况



当我们需要最多两个日期作为审核日期的情况时,任何替代方案 如何优化它。

SELECT 
a.code,a.name,b.token,a.last_updated,b.last_updated, 
CASE WHEN a.last_updated >= nvl(b.last_updated, a.last_updated) THEN 
a.last_updated ELSE b.last_updated END AS currdate 
FROM 
table1 a LEFT JOIN table2 b ON (a.code = b.code 
AND b.last_updated > '03/10/2018 13:21:37') 
WHERE 
a.ou_code IN 
(SELECT ou_code FROM table1 WHERE last_updated > '03/10/2018 13:21:37') 
OR (b.last_updated > '03/10/2018 13:21:37') 
ORDER BY currdate

我假设您的表没有正确的索引。如果可以的话,我会补充一点:

create index ix1 on table2 (code, last_updated);
create index ix2 on table1 (last_updated);

相关内容

最新更新