Pular para o conteúdo

Fóruns SQL e PL/SQL Ajuda com Select – causando lentidão no banco Ajuda com Select – causando lentidão no banco

#76375
Marcio68Almeida
Participante

    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]