叢集索引搜尋 Showplan 運算子
更新: 2006 年 12 月 12 日
Clustered Index Seek 運算子使用索引的搜尋能力,從叢集索引中擷取資料列。Argument 資料行包含所使用的叢集索引名稱,及 SEEK:() 述詞。儲存引擎會使用索引來處理滿足這個 SEEK:() 述詞的資料列。也可以包含 WHERE:() 述詞,讓儲存引擎針對滿足 SEEK:() 述詞的所有資料列進行評估,但此為選擇性,且不使用索引來完成此程序。
如果 Argument 行中包含 ORDERED 子句,表示查詢處理器已決定,資料列的傳回順序必須依叢集索引的排序次序。如果沒有 ORDERED 子句,儲存引擎會以最佳方式搜尋索引,不需要將輸出排序。讓輸出維持次序會比產生不按次序的輸出還要沒有效率。
出現關鍵字 LOOKUP 時,表示正在執行書籤查閱。在 SQL Server 2005 Service Pack 2 中,Key Lookup 運算子提供書籤查閱功能。
Clustered Index Seek 是邏輯與實體運算子。
圖形化執行計劃圖示
範例
下列範例會從有叢集索引的資料表中刪除一列。執行計劃的輸出顯示,查詢最佳化工具會使用 Clustered Index Seek 運算子來擷取指定的資料列。
USE AdventureWorks;
GO
SET NOCOUNT ON;
GO
SET SHOWPLAN_ALL ON;
GO
SELECT Name
FROM Production.UnitMeasure
WHERE UnitMeasureCode BETWEEN 'Each' AND 'Inch';
GO
SET SHOWPLAN_ALL OFF;
Clustered Index Seek 運算子的執行計劃輸出顯示在下面。
PhysicalOp
-----------------------------------------------------------------------
Clustered Index Seek
Argument
-----------------------------------------------------------------------
OBJECT:([AdventureWorks].[Production].[UnitMeasure].[PK_UnitMeasure_UnitMeasureCode]),
SEEK:([AdventureWorks].[Production].[UnitMeasure].[UnitMeasureCode] >=
CONVERT_IMPLICIT(nvarchar(4000),[@1],0) AND
[AdventureWorks].[Production].[UnitMeasure].[UnitMeasureCode]
<= CONVERT_IMPLICIT(nvarchar(4000),[@2],0)) ORDERED FORWARD
請參閱
工作
參考
叢集索引掃描 Showplan 運算子
Key Lookup Showplan 運算子
概念
邏輯與實體運算子參考
叢集索引結構
使用 Showplan SET 選項來顯示執行計劃 (Transact-SQL)
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|
2006 年 7 月 17 日 |
|