状況によって異なります。
それはあなたがビューを通して見ているものに完全に依存します。しかし、おそらくあなたの努力を減らし、より高いパフォーマンスを与えるでしょう。 SQLステートメントがインデックス付けされていないビューを参照する場合、パーサーとクエリオプティマイザーは、SQLステートメントとビューの両方のソースを分析し、それらを単一の実行プランに解決します。 SQLステートメントのプランは1つではなく、ビューのプランも別にありません。
ビューはコンパイルされません 。その仮想テーブルは他のテーブルで構成されています。あなたがそれを作成するとき、それはあなたのサーバーのどこかに存在しません。ビューを構成する基になるクエリは、クエリオプティマイザと同じパフォーマンスの向上または機能の影響を受けます。ビューとその基になるクエリのパフォーマンスをテストしたことはありませんが、パフォーマンスがわずかに異なる可能性があると思います。データが比較的静的である場合は、インデックス付きビューのパフォーマンスを向上させることができます。これは、おそらく「コンパイル済み」の観点から考えていることかもしれません。
ビューの利点:
- データをオブジェクトに保存せずにデータを表示します。
- テーブルの表示を制限します。つまり、テーブルの一部の列を非表示にすることができます。
- 2つ以上のテーブルを結合し、それを1つのオブジェクトとしてユーザーに表示します。
- テーブルへのアクセスを制限して、誰も行をテーブルに挿入できないようにします。
次の便利なリンクをご覧ください:
- VIEWとSQLステートメントのパフォーマンス>
- ビューは、簡単なクエリ?
- MySQLVIEWSとPHPクエリ
- MySqlビューは動的で効率的ですか?>
- マテリアライズドビューとテーブル:利点は何ですか?
- クエリを実行していますSQLを直接実行するよりも遅いビューで?
- TEMPTABLEビューのパフォーマンスの問題の回避策
-
SQLServerでインデックス付きビューを使用することでパフォーマンスが向上することを確認する