RES: [firebase-br] Demora em Stored Procedure...
Ton
hevertonc em hotmail.com
Sex Jul 29 14:22:58 -03 2005
Em verdade, ela não está trazendo as maiores vendas, e sim a soma das
vendas no período informado.
A demora é causada pelo SubSelect, pois para cada cliente, ele re-executa
o mesmo, tenta assim:
SELECT B.NOME,
SUM(C.QUANTIDADE * C.VALOR_ORIGINAL) AS TOTAL_PRODUTOS
FROM CLIENTES B,
LANCAMENTOS C,
NOTAS D
WHERE D.DT_EMISSAO BETWEEN '01-01-2005'
AND '12-31-2005'
AND C.CLIENTE_ID = B.CLIENTE_ID
AND D.NOTA_ID = C.NOTA_ID
ORDER BY 2 DESC
Deste jeito, mesmo que ele tenha mais duas tabelas diretas a pesquisar,
ele otimiza uma vez e já retorna tudo o que vc precisa, da outra forma, ele
precisa executar o subselect tantas vezes quanto há clientes em seu banco.
Posta o resultado...
Abraços...
Ton
Analista de Sistemas
DotCom Informática
"A informação não é um produto,
mas sim a matéria prima." (Ton)
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Roberto - Sui Generis
Enviada em: sexta-feira, 29 de julho de 2005 14:08
Para: FireBase
Assunto: [firebase-br] Demora em Stored Procedure...
Tenho a Stored Procedure abaixo, mas para me retornar o Resultado, demora
muito... Alguém tem uma sugestão para ficar mais rápida...
Obs: Esta SP retorna as Maiores vendas por cliente
begin
for select b.NOME,
(select sum(c.QUANTIDADE * c.VALOR_ORIGINAL) from LANCAMENTOS c
left join NOTAS d on d.NOTA_ID = c.NOTA_ID
where d.DT_EMISSAO between '01-01-2005' and '12-31-2005'
and c.CLIENTE_ID = b.CLIENTE_ID
) as TOTAL_PRODUTOS
from CLIENTES b
order by 2 desc
into :NOME, :TOTAL
do
suspend;
end
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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
--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 28/7/2005
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 28/7/2005
Mais detalhes sobre a lista de discussão lista