RES: [firebase-br] Consulta Muito, Muito Lenta

Hideo - SJB hideo em sjb.com.br
Sex Jul 29 16:52:31 -03 2005


Olá Valdir, tudo bem?
Estou começando a migrar para a plataforma 1.5 do Firebird e das minhas
experiências até aqui com relacionamento entre tabelas até aqui, eu não
aconselho vc a trabalhar com LEFT OUTER, pois até onde sei, o FB não
procurava o melhor PLAN para a consulta. Caso vc não tenha necessidade de
trazer na consulta, os produtos que não tenham movimentação, utilize o INNER
JOIN ao invés de LEFT OUTER e ver qual é o resultado. Procure limitar tb. o
período de movimentação para que a consulta não traga todas as
movimentações.
Espero ter ajudado.
[]'s
Marcos

-----Mensagem original-----
De: lista-bounces em firebase.com.br
[mailto:lista-bounces em firebase.com.br]Em nome de Valdir Dill
Enviada em: sexta-feira, 29 de julho de 2005 15:53
Para: lista em firebase.com.br
Assunto: [firebase-br] Consulta Muito, Muito Lenta



Para gerar um relatório de estoque de produtos em determinada data,
 tenho uma query com a instrução SQl abaixo:

"
SELECT P.CODIGO, P.DESCRICAO, P.UNIDADE, P.MARCA, P.ESTOQUEMINIMO,
 P.ATUAL,
CASE ME.OPERACAO WHEN 'E' THEN SUM(ME.QUANTIDADE) END AS ENTRADAS,
CASE ME.OPERACAO WHEN 'S' THEN SUM(ME.QUANTIDADE) END AS SAIDAS

FROM PRODUTOS P
LEFT JOIN MOVIESTOQUE ME ON (ME.PRODUTO = P.CODIGO AND ME.DATA
 >:VDataPosicao)
GROUP BY
P.CODIGO, P.DESCRICAO, P.UNIDADE, P.MARCA, P.ESTOQUEMINIMO, P.ATUAL,
 ME.OPERACAO
"

Se o cadastro de produtos tiver mais que 2500 itens, chega a demorar
 mais de 5 minutos para abrir. Por que será tanta demora? Alguém teria
 alguma sugestão para fazer essa consulta de forma diferente e que fosse
 mais rápida?

Utilizo Firebird 1.5

Obrigado









Mais detalhes sobre a lista de discussão lista