[firebase-br] Ordem dos INNER e LEFT - Desempenho.

Kurt Schneider kjundia em gmail.com
Ter Ago 3 11:14:14 -03 2010


Prezados

Esta semana me deparei com uma situação diferente.

Estavamos monitorando alguns SQL de um processo bastante complexo no
sistema, que tem por objetivo montar um Extrato de Movimentações Físicas de
Produtos.
Este processo envolve aproximadamente 29 Selects, unidos por Union,
envolvendo 10 tabelas distintas (nao toda para um select, mas a cada UNION,
ao menos 3 tabelas).

Neste Selects a grande maioria é composta por INNER JOIN, mas em dois casos,
tive que usar INNER e LEFT, nesta ordem, logo após o FROM.

SELECT
   ...
FROM TAB_A
INNER JOIN ...
INNER JOIN ...
LEFT JOIN ...
LEFT JOIN ...

WHERE ..
AND ..

O Tempo desta consulta esta em 45 Segundos.

Trocamos a ordem do INNER / LEFT para LEFT /  INNER ficando assim, a
consulta:
SELECT
   ...
FROM TAB_A
LEFT JOIN ...
LEFT JOIN ...
INNER JOIN ...
INNER JOIN ...
WHERE ..
AND ..

O Tempo de resposta passou para 3 segundos.
O Firebird usado é 1.5.4...

Gostaria de entender esta situação.

Atenciosamente


-- 
PS: Troquei meu Número de Celular - 49 9148 4809

************************************************************************************
Kurt Schneider - [ Gerente de Projetos ]
ControlSoft - Assessoria e Desenvolvimento de Sistemas
Fones.: Chapecó/SC 49 3329 1878
            Sorriso/MT    66 3544 4364
            Celular          49 9148 4809 SC
                                66 9903 4958 MT
E-mail: kjundia em gmail.com / kurt em controlsoft.com.br
msn...: kjundia em hotmail.com / skype.: kjundia
"Quis custodiet ipsos custodes?" - Satirás - De Juvenal



Mais detalhes sobre a lista de discussão lista