クラスター化インデックスには常にすべての行が含まれます。 z
によって注文される場合があります 、ただし、リーフ レベルの他のすべての列は引き続き含まれます。
SQL Server がインデックス シークよりもクラスタ化されたスキャンを好む場合がある理由はこれです。インデックス シークを行うときは、クラスター化インデックスへのブックマーク ルックアップを使用して、インデックスにない列を取得する必要があります。
クラスター化インデックス スキャンを実行すると、定義上、すべての列が検出されます。つまり、ブックマークの検索は必要ありません。
SQL Server が多くの行を予期している場合、ブックマーク ルックアップを回避しようとします。これは長年の選択です。クラスター化されていないインデックスのシークは、クラスター化されたインデックス スキャンによって定期的に打ち負かされます。
with (index(IX_YourIndex))
クエリのヒント
.