我不清楚下面提到的查询之间的工作差异。
具体来说,我不确定
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);
第三种方法:在这里,我不清楚查询如何使用loop join
并包含OPTION
!?
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (LOOP JOIN);
能否有人解释一下它们之间的区别、工作方式和彼此之间的优势?
注意:这些不是嵌套或哈希循环!