Я не понимаю о разнице между запросами, упомянутыми ниже.
В частности, я не понимаю концепцию
OPTION(LOOP JOIN)
.
1-й подход: используется традиционное соединение, которое является самым дорогим, чем все ниже.
SELECT *
FROM [Item Detail] a
LEFT JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (FORCE ORDER);
Второй подход: Он включает OPTION
в оператор с отсортированными данными, просто оптимизированный.
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (FORCE ORDER);
3-й подход: Здесь я не понимаю, как работает запрос и включает OPTION
с loop join
!!?
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (LOOP JOIN);
Может ли кто-нибудь объяснить разницу и способ работы и преимущества каждого из них над другим?
Примечание. Это не Вложенные или Hash-контуры!