Junção de loop no SQL Server 2008
Não estou claro sobre a diferença de trabalho entre as consultas mencionadas abaixo.
Especificamente, não estou claro sobre o conceito deOPTION(LOOP JOIN)
.
1ª abordagem: é uma junção tradicional usada, mais cara do que todas as opções abaixo.
SELECT *
FROM [Item Detail] a
LEFT JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (FORCE ORDER);
2ª abordagem: IncluiOPTION
em uma declaração com dados classificados, apenas otimizados.
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (FORCE ORDER);
3ª abordagem: Aqui, não estou claro, como a consulta funciona e incluiOPTION
comloop join
!!?
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (LOOP JOIN);
Alguém pode explicar a diferença, o modo de trabalhar e as vantagens de cada um?
Nota: Esses sãonão Loops aninhados ou hash!