Clustered Index Seek プラン表示操作

更新 : 2006 年 12 月 12 日

Clustered Index Seek 操作は、インデックスのシーク機能を使用してクラスタ化インデックスから行を取得します。Argument 列には、使用されているクラスタ化インデックスの名前と SEEK:() 述語が含まれます。ストレージ エンジンはインデックスを使用して、この SEEK:() 述語に適合する行だけを処理します。また、WHERE:() 述語を含めることもできます。この場合、ストレージ エンジンは、SEEK:() 述語に適合するすべての行が WHERE:() 述語に適合するかどうかを評価します。ただし、WHERE:() 述語は省略可能であり、処理を行うときにインデックスを使用しません。

Argument 列に ORDERED 句が含まれている場合、行をクラスタ化インデックスの並べ替え順で返す必要があることが、クエリ プロセッサによって判断されます。ORDERED 句がない場合、ストレージ エンジンが最適な方法でインデックスを検索します。ただし、出力が並べ替えられるとは限りません。出力で行の順序を保持する場合、並べ替えられていない出力に比べて効率が低下することがあります。

LOOKUP キーワードを指定すると、ブックマーク参照が行われます。SQL Server 2005 Service Pack 2 では、Key Lookup 操作によってブックマーク参照機能が提供されます。

Clustered Index Seek は、論理操作でもあり、物理操作でもあります。

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

参照

処理手順

実際の実行プランを表示する方法

関連項目

Clustered Index Scan プラン表示操作
Key Lookup プラン表示操作

概念

論理操作と物理操作のリファレンス
クラスタ化インデックスの構造
プラン表示 SET オプションを使用した実行プランの表示 (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

新しい内容 :
  • Key Lookup 操作に関する文を追加しました。

2006 年 7 月 17 日

新しい内容 :
  • 「例」を追加しました。