我不清楚下面提到的查詢之間的工作差異。循環加入SQL Server 2008中
具體而言,我不清楚
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);
任何人都可以解釋區別,工作方式和每個人的優勢比其他?
注意:這些是不是嵌套或散列循環!
文檔:[查詢提示](https://msdn.microsoft.com/en-us/library/ms181714.aspx)和[加入提示](https://msdn.microsoft.com/en-GB /library/ms173815.aspx) – Tanner
爲什麼你認爲第一種方法是「最昂貴的比以下所有」? – Magnus
我用我的本地服務器測試過它,並獲得最高的差異!當然,差異僅爲+2到+3秒 – Vikrant