3

基本的にいくつかのテーブルを結合しているビューがあり、ビューにインデックスがありません。ビュー(別のテーブルと結合)に対してクエリを実行すると、パフォーマンスが低下し、約10分かかります。ビューからベーステーブルを抽出して「別のテーブル」と結合すると、約20秒かかります。ビューを使用するロジックまたはベーステーブルを使用するロジックはまったく同じです。私はをチェックしました、そして彼らは異なる実行計画を取得します。なぜこれが起こるのか、何か考えはありますか?

ありがとう。

4

1 に答える 1

3

SQL Serverは、キャッシュされた実行プランを使用している可能性があります(ビューから何かを最初に選択したときに基づいています。そのテーブルのサイズが大きくなり、最も効率的なプランを使用しなくなったため、パフォーマンスが低下した可能性があります)。

次を使用してビューを更新できます。

sp_refreshview [ @viewname = ] 'viewname'

または、ビューを完全に再構築して再実行し、新しい実行プランを生成します。ただし、後で同じパフォーマンスの問題が発生する可能性があります。この記事では、何が起こっている可能性があるかをさらに詳しく説明します。

http://www.sql-server-performance.com/2007/views-general/

http://technet.microsoft.com/en-us/library/ms187821.aspx

于 2012-05-31T09:37:07.980 に答える