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