Я не понимаю о разнице между запросами, упомянутыми ниже.Loop Присоединиться к SQL Server 2008
В частности, я не знаю о концепции
OPTION(LOOP JOIN)
.
первый подход: это традиционный присоединиться используемый, который является самым дорогим, чем все ниже.
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);
третий подход: Здесь, я не ясно, как работает запрос и включает в себя OPTION
с loop join
!!?
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (LOOP JOIN);
Может ли кто-нибудь объяснить разницу и способ работы и преимущества каждого из них над другим?
Примечание: Это не Вложенные ИЛИ Hash-петли!
документация: [подсказки запроса] (https://msdn.microsoft.com/en-us/library/ms181714.aspx) и [Join Hints] (https://msdn.microsoft.com/en-GB /library/ms173815.aspx) – Tanner
Почему, по вашему мнению, первый подход «самый дорогой, чем все ниже»? – Magnus
Я тестировал его на своем локальном сервере и получил самую высокую разницу! и, разумеется, разница составляла только от +2 до +3 секунд. – Vikrant