オブジェクトの大半が非アクティブ(クローズ)であるオブジェクトがアクティブであるか非アクティブであるかを示すビット列の表を考えてみます。ビット列の索引
この列(2)の個別値の数が限られているため、SQLエンジンは、ビット列に対してインデックスを作成するのではなく、開いている項目を検索するためにテーブルスキャンを実行する方が効率的だと認識しました。
SQL 2008には、インデックス上のフィルタを許可する新しい機能があります。その内部について多くのことを知らなければ、インデックスにはフィルタ基準を満たす場合にのみレコードへの参照が含まれており、このアプローチは分割に頼らずにすべてのアクティブなレコードを取得する効率的な手段を提供すると仮定しますアクティブなレコードを別のテーブルまたはパーティションにコピーします。
オープンレコードレコードのプライマリキーを、アクティブレコードを識別するために使用したテーブルに配置し、メインテーブルをこの「アクティブリスト」テーブルに結合してアクティブレコードのみを返しました。
フィルタリングされたインデックスをこの目的で使用するのは、このような状況では適切ではない理由はありますか?