У меня есть запрос, который занимает много времени (187,42 секунды), чтобы найти все связанные документы, содержащие атрибут (c.scr), и из этого списка, дающего мне документ обрабатывается с последней датой документа. Мне было интересно, могут ли кто-нибудь предложить какие-либо предложения по оптимизации запроса.Оптимизируйте аналитический запрос Max() и DENSE_RANK для курсора
Обратите внимание, что я играл с ROW_NUMBER, RANK и DENSE_RANK, и они были еще медленнее, так что это лучшее, что я получил до сих пор.
(Query) total time '187.42 seconds':
SELECT MAX(A.DOC_NUM) KEEP (DENSE_RANK FIRST ORDER BY A.DOC_DT DESC) as DOC_NUM
FROM AB A , CD C
WHERE A.ID = C.ID
AND SUBSTR(C.SCR,20,8) = '123123123';
(Data Set) :
DOC_NUM DOC_DT
AB2012JAN-23-12
AB201206280000674 JUN-28-12
AB201406230000066 AUG-05-14
AB201406230000066 AUG-05-14
AB201312170000227 DEC-17-13
AB201312180000093 DEC-19-13
Спасибо,
Самая большая вещь, которая выскакивает для меня, - это предложение 'Where':' SUBSTR (C.SCR, 20,8) = '123123123'' не может использовать какой-либо индекс (если у вас есть) с этим утверждением. – Siyual
Уверен, что он может ... функционально-основанный. Вопрос в том, является ли такой индекс полезным (LIO-wise). – nop77svk