› Fóruns › SQL e PL/SQL › Ajuda com Select – causando lentidão no banco › Ajuda com Select – causando lentidão no banco
Bom…
Há muitos itens na sua consulta que são realmente perniciosos à performance…
1. Quando você utiliza TO_CHAR, TO_DATE, SUBSTR, etc…
2. Quando você usa Outer Join (+)
3. Quando você usa >, =, <=, etc…
A opção :
e.recf_cepf_cep_ini = c.pred_cepe_cod
Pode ser substituída por :
c.pred_cepe_cod between e.recf_cepf_cep_ini AND e.recf_cepf_cep_fim
A opção :
a.mes_ref BETWEEN TO_DATE (:pr_mes_ref, 'mm/yyyy') AND TO_DATE (:pr_mes_ref2, 'mm/yyyy')
Pode ser substituída por :
TO_CHAR (a.mes_ref, 'yyyymm') BETWEEN :pr_mes_ref AND :pr_mes_ref2
O fato de estar usando índice não quer dizer que terá uma boa performance…
Meu conselho é que você faça a sua consulta por partes, inserindo as condições (cláusula where) com mais critério…
[/code]