はい、フィルター処理された非クラスター化インデックスは次の目的で使用されます。
- 非常に少数のレコードをスキャンするよりもクエリ。持っています
WHERE date ='20101016'
(270M から 1 日、いくつかのレコードを除外します)。
- より大きな日付範囲をスキャンするよりもクエリを実行しますが、日付フィールドのみに触れます。
SELECT COUNT(date) FROM ... WHERE date BETWEEN '20080101' AND '20090101'
そしてそれはそれについてです。より複雑なクエリでは、インデックスの転換点に達するため、フィルター処理されているかどうかに関係なく、非クラスター化インデックスは使用されません。
したがって、結論として、WHERE date > '200080101'
句を持つこのテーブルの一般的なクエリの場合、提案されたフィルター処理された非クラスター化インデックスは役に立ちます...何もありません。さらに、date
クラスター化インデックスの左端のキーとして移動したとしても (これは、テーブルのように時間範囲クエリ時系列の典型的な編成であり、自分で検討する必要があります)、「のみ」140M を除外します。 270M はほとんど最適化ではありません。
適切な索引付けは複雑なトピックです。すべてのサブチャプターを含む、この MSDN リンクのすべてを読むことをお勧めします: Designing Indexes。これにより、いくつかのより複雑な記事を理解するための最小限の知識が得られ、そこにある大量の誤った情報をばかげたことから正しく識別することができます。