Boa noite, pessoal tô numa luta e creio numa estratégia de melhoria,
seguinte a query abaixo qdo entro com a data entre o dia 01/09 a 30/09 roda em 60seg, e faz um tablescanfull, mas qdo coloco entre o dia 01/09 a 26/09, por ex, é utilizado um índice e roda 3 seg., já tentei forçar um hint e o plano de execução tb ñ mudou. as colunas da clausular where estão indexadas e foram tb indexadas compostas e depois um índice para cada um e mesmo assim ñ melhorei, sei q o oracle trabalhar com seletivade e ele tenta ir pelo melhor camino, mas nesse caso acho a dirença em tempo tá gde de mais.
SELECT COUNT(*) FROM (SELECT SUM(M01AK) as TOTALANO FROM Zan_M01 WHERE M00ZA = 7 AND M00AF >= TO_DATE(‘2010-09-01′,’yyyy-mm-dd’) AND M00AF <= TO_DATE('2010-09-30','yyyy-mm-dd') AND M01ZZA03 <> 9)
abs,