Re: [firebase-br] AJUDA - SELECT CAUSANDO LENTIDÃO NO BANCO

Marcelo Silva marcvan em ig.com.br
Seg Ago 28 15:42:02 -03 2006


A principio uma das coisas que podem parecer nao ter nada a ver é deixar o 
banco resolver algumas questões que poderiamos ja dar de forma direta a ele.
Por exemplo a falta do "AS"
Assim ele tem que analizar quando é ou não apelido... essa tarefa vc pode 
poupa-lo
Outra coisa que esta me parecendo estranho é vc colocar as mesmas tabela do 
primeiro select e no segundo.
Voce pode fazer o uso de :Parametros

Exemplo

SELECT CAMPO AS CP_TB1 TABELA 1 WHERE (VALOR = :P_VALOR)
UNION ALL
SELECT CAMPO AS CP_TB2 TABELA 2 WHERE (VALOR = :P_VALOR)

Uma outra coisa é fazer uso de JOIN quando possivel evitando assim 
duplicidade dentro do result do where no caso de SELECT CAMPO1, CAMPO2 FROM 
TABELA1 , TABELA2

Outra coisa ainda é analizar a criação de indices nos campos envolvidos em 
selects com results extensos isso torna o result mais rapido :)

Bem, minhas dicas são com nase no FB talvez eu esteja falando besteira com 
relação ao Oracle



----------------------
Marcelo Silva
(11) 9693-4251
(11) 6723-3106 - LESTCRED
MSN: marcvan em ig.com.br





Olá pessoal.

O DBA da empresa que trabalho nos passou esse "select" dizendo que está
causando muita lentidão no banco.
Já estudei a linha de código mas não estou conseguindo visualizar nenhuma
mudança de melhoria.
Se alguém puder me ajudar desde já agradeço muito.

select:
SELECT   espe_evt_cod esp_princ,
         DECODE (a.espe_evt_cod,
                 99999999, a.exame,
                 DECODE (NVL (b.pcdm_grup_espe_cod, -1), -1, 10014, a.exame)
                ) proced,
         a.exame
    FROM hist_exame a,
             pcdm_pcm b,
             espe_esp f
   WHERE :pr_local_id IS NULL
     AND a.mes_ref BETWEEN TO_DATE (:pr_mes_ref, 'mm/yyyy')
                       AND TO_DATE (:pr_mes_ref2, 'mm/yyyy')
     AND a.grp_emp_id = :pr_grp_emp_id
     AND a.prest_id = :pr_prest_id
     AND a.vlr_pago > 0
     AND b.pcdm_cod(+) = a.exame
     AND f.espe_cod(+) = a.exame

UNION

SELECT   espe_evt_cod esp_princ,
         DECODE (a.espe_evt_cod,
                 99999999, a.exame,
                 DECODE (NVL (b.pcdm_grup_espe_cod, -1), -1, 10014, a.exame)
                ) proced,
         a.exame
    FROM hist_exame        a,
             pcdm_pcm        b,
             pred_prt_edr     c,
             tiep_prt_edr_tip d,
             recf_fxa_cep_rgi e,
             espe_esp           f
   WHERE :pr_local_id IS NOT NULL
     AND a.mes_ref BETWEEN TO_DATE (:pr_mes_ref, 'mm/yyyy')
                       AND TO_DATE (:pr_mes_ref2, 'mm/yyyy')
     AND a.grp_emp_id = :pr_grp_emp_id
     AND a.prest_id = :pr_prest_id
     AND a.vlr_pago > 0
     AND b.pcdm_cod(+) = a.exame
     AND f.espe_cod(+) = a.exame
     AND c.pred_prtd_cod = a.prest_id
     AND d.tiep_pred_cod = c.pred_cod
     AND d.tiep_tip_edr = 3
     AND e.recf_etor_cod = :pr_etor_cod
     AND e.recf_rgio_cod = :pr_local_id
     AND e.recf_cepf_cep_ini <= c.pred_cepe_cod
     AND e.recf_cepf_cep_fim >= c.pred_cepe_cod
GROUP BY espe_evt_cod, a.exame, b.pcdm_grup_espe_cod, f.espe_cod
ORDER BY 1 ASC

_________________________________________________________________
O Windows Live Spaces é seu espaço na internet com fotos (500 por mês), blog
e agora com rede social http://spaces.live.com/


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


__________ Informação do NOD32 1.1725 (20060825) __________

Esta mensagem foi verificada pelo NOD32 Sistema Antivírus
http://www.nod32.com.br



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



-- 
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.10.5/403 - Release Date: 28/07/2006






Mais detalhes sobre a lista de discussão lista