3

インデックス付きビューとは何かわかりませんが、下にあるテーブルのデータが変更された場合、正確にはどうなるのでしょうか。ビューキャッシュ全体が破棄され、行が変更されただけですか?

ホテルの空き状況(+ 100kレコード)の検索に使用されるいくつかのテーブル(+5)に対して非常に複雑なクエリがあり、IMHOインデックスビューによってパフォーマンスが大幅に向上する可能性があります。しかし、データ(数行)は頻繁に変更され(部屋は売却され、無料の部屋は管理者atcで変更されました)、1行だけが変更されるたびにビューが再構築されるとしたら、私のアプリのボトルネックになります。

または、非常に複雑なクエリを「キャッシュ」する方法についてのアイデアはありますか?

ありがとうございました。

4

2 に答える 2

4

technetドキュメントから:

通常のインデックスとは異なり、参加しているテーブルのいずれかに単一の行を挿入すると、インデックス付きビューで複数の行が変更される可能性があります。これは、単一の行が別のテーブルの複数の行と結合する可能性があるためです。更新と削除についても同じことが言えます。したがって、インデックス付きビューの保守は、テーブルのインデックスを保守するよりもコストがかかる可能性があります。

ソース:

http://technet.microsoft.com/en-us/library/cc917715.aspx#XSLTsection124121120120

つまり、ビュー全体を更新/再作成する必要がなく、関連する場所で行が更新されているように聞こえます。

于 2010-01-07T20:18:37.747 に答える
0

SQLサーバーを実行していると仮定しています。100k 以上の行は多くありません。5 種類のテーブルを結合する場合は、インデックス付きビューの実装を検討する前に、結合する列にカバー インデックスがあることを確認することをお勧めします。クエリ アナライザーを使用して、クエリのボトルネックを直接見つけます。非常に小さなテーブルでパフォーマンスの問題が発生している場合は、おそらく厄介なテーブル スキャンが行われている可能性があります。

于 2010-01-07T20:38:55.863 に答える