2017-05-03 9 views
2

それぞれのメリットは?両方とも、クエリのトラッキングが必要な行と列の数が制限されているように見えます。SQL Server:フィルタリングされたインデックスとインデックス付きビュー

+0

例えば私の答えをチェック満たした。インデックス付きビューは、行数を減らすことではなく、そのビューに対する高速化(ほとんどの 'SELECT')クエリは、ビューが示すデータを永続化および索引付けすることです –

答えて

3

インデックス付きビュー

  • 式に基づいて列を含むことができます。

  • には、複数のテーブルの結合を含めることができます。

  • は、ユーザーのSQL文で直接参照できます。

  • は前提条件が複雑しているすべての決定論的な表現にできますが、使い方が簡単で一貫性のある

filtered index

  • がある(* [indexedview]から選択)表に含まれる列に限定されます。

  • は、フィルタの簡単な式のみを許可します。

  • は実装が簡単ですが、オプティマイザは、ベース表の問合せ時に使用率が適切かどうかを判断します。

どちらも非確定的表現を使用できません。

0

インデックスビュー:

i)複数のテーブルから結果を取得する必要があります。

ii)このビューでインデックスを作成してパフォーマンスを向上させます。

フィルタリングされたインデックス:

i)は、単一のテーブルのレコードがたくさんあります。

ii)具体的な値の条件には、多くのレコードが含まれている特定の場合。この条件は非常に頻繁に使用されます。この条件は、パフォーマンスが最も重要な非常に重要なクエリで使用されます。 この場合、テーブル上にフィルタリングされたインデックスを作成することがあります。

*インデックス付きビュー*がする必要がある前提条件のかなり大規模な、長いリストを持っていながら*ろ過指数*は、可能であることを非常に簡単*条件*を必要と

MS SQL Server 2008 - UPDATE a large database

関連する問題