Случай, когда запрос занимает очень много времени, даже если записи не найдены - PullRequest
0 голосов
/ 03 октября 2018

Любые альтернативы для случая, когда нам нужно максимум две даты в качестве даты аудита. Как ее оптимизировать.

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

1 Ответ

0 голосов
/ 04 октября 2018

Я бы предположил, что ваши таблицы не имеют правильных индексов.Если вы можете, я бы добавил:

create index ix1 on table2 (code, last_updated);

create index ix2 on table1 (last_updated);
...