認識巢狀迴圈聯結

巢狀迴圈聯結 (也稱為*「巢狀循環」*) 使用一個聯結輸入做為外部輸入資料表 (在圖形執行計劃中顯示為上方的輸入),另一個做為內部 (下方) 輸入資料表。外部迴圈會逐列消耗外部輸入資料表。內部迴圈 (針對外部每一列各執行一次) 會在內部輸入資料表中搜尋符合的資料列。

在最簡單的情況下,搜尋會掃描整個資料表或索引;這稱為*「單純巢狀迴圈聯結」。如果搜尋利用到索引的話,就稱為「索引巢狀迴圈聯結」。如果建立索引是查詢計劃中的一部份 (並且在查詢完成時毀掉),就稱為「暫存索引巢狀迴圈聯結」*。查詢最佳化工具會將這些變化全部列入考慮。

如果外部輸入相當小,內部輸入已預先建立索引而且很大的話,巢狀迴圈聯結會特別有效率。在許多小型交易中 (如只影響一小組資料列的交易),索引巢狀迴圈聯結比合併聯結與雜湊聯結要好得多。然而在大型查詢中,巢狀迴圈聯結多半不是最佳選擇。

請參閱

參考

顯示圖形執行計劃 (SQL Server Management Studio)

概念

聯結基礎觀念
邏輯與實體運算子參考

其他資源

分析查詢

說明及資訊

取得 SQL Server 2005 協助