[firebase-br] Resultado com INNER JOIN x LEFT JOIN
Marcos Marcos
facundini em hotmail.com
Qui Jun 22 09:52:16 -03 2006
Bom dia a todos,
Alguém consegue explicar a diferença no resultado abaixo:
(Observar os planos utilizados na tabela TBTIPOMOVIMENTOSAIDA).
Minha dúvida é porque usando INNER JOIN foi aplicado o plano NATURAL,
ficando a pesquisa muito mais lenta e usando o LEFT JOIN foi aplicado o
índice principal
da tabela ficando a pesquisa + rápida.
1º)
SELECT TBMOVESTOQUE.CODPRODUTO, TBMOVESTOQUE.DATAMOVIMENTO
FROM TBMOVESTOQUE
INNER JOIN TBTIPOMOVIMENTOSAIDA
ON (TBMOVESTOQUE.CODTM = TBTIPOMOVIMENTOSAIDA.COD_TM)
WHERE
(TBMOVESTOQUE.DATAMOVIMENTO >= '01/01/2005') AND
(TBMOVESTOQUE.DATAMOVIMENTO <= '01/31/2005') AND
(TBTIPOMOVIMENTOSAIDA.BAIXAESTOQUE = 1) AND
(TBTIPOMOVIMENTOSAIDA.FISCAL = 1)
Plan
PLAN JOIN (TBTIPOMOVIMENTOSAIDA NATURAL,TBMOVESTOQUE INDEX
(TBMOVESTOQUE_DATAPRODUTO))
Adapted Plan
PLAN JOIN (TBTIPOMOVIMENTOSAIDA NATURAL,TBMOVESTOQUE INDEX
(TBMOVESTOQUE_DATAPRODUTO))
2º)
SELECT TBMOVESTOQUE.CODPRODUTO, TBMOVESTOQUE.DATAMOVIMENTO
FROM TBMOVESTOQUE
LEFT JOIN TBTIPOMOVIMENTOSAIDA
ON (TBMOVESTOQUE.CODTM = TBTIPOMOVIMENTOSAIDA.COD_TM)
WHERE
(TBMOVESTOQUE.DATAMOVIMENTO >= '01/01/2005') AND
(TBMOVESTOQUE.DATAMOVIMENTO <= '01/31/2005') AND
(TBTIPOMOVIMENTOSAIDA.BAIXAESTOQUE = 1) AND
(TBTIPOMOVIMENTOSAIDA.FISCAL = 1)
Plan
PLAN JOIN (TBMOVESTOQUE INDEX
(TBMOVESTOQUE_DATAPRODUTO),TBTIPOMOVIMENTOSAIDA INDEX
(TBTIPOMOVIMENTOSAIDA_PK))
Adapted Plan
PLAN JOIN (TBMOVESTOQUE INDEX
(TBMOVESTOQUE_DATAPRODUTO),TBTIPOMOVIMENTOSAIDA INDEX
(TBTIPOMOVIMENTOSAIDA_PK))
Obrigado,
Marcos.
_________________________________________________________________
Seja um dos primeiros a testar o novo Windows Live Mail Beta- grátis. Acesse
http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d
Mais detalhes sobre a lista de discussão lista