SQL Serverでは、実際のテーブルの代わりにインデックスビューを使用するのはいつですか?
-
27-09-2019 - |
質問
SQL Serverでは、ビューでインデックスを作成できることを知っています。ビューは、基礎となるテーブルからデータを保存します。その後、ビューを照会できます。しかし、なぜテーブルの代わりにビューを使用する必要があるのですか?
解決
ビューを使用してクエリを簡素化することをお勧めします。私たちのプロジェクトでは、コンセンサスはインターフェイスのビュー、特に「レポートインターフェイス」を使用することです。
クライアントのテーブルがあると想像してください。マネージャーは、クライアントの名前とアカウントの残高(または何でも)で毎朝レポートを望んでいます。レポートをテーブルに対してコーディングすると、レポートとテーブルの間に強力なリンクが作成され、後で変更が困難になります。
一方、レポートがビューにヒットした場合、データベースを自由にひねることができます。ビューが同じである限り、レポートは機能しますが、マネージャーは幸せで、データベースを自由に試すことができます。クライアントメタデータをメインクライアントテーブルから分離したいですか?それのために行き、ビューの2つのテーブルに参加してください。あなたはクライアントのカート情報を非正規化したいですか?問題ありません、ビューは適応できます...
正直に言うと、それはプログラマーとしての私の見解ですが、他の用途は確かにDBの達人によって見つかります:)
他のヒント
テーブルは、データが物理的に保存される場所です。
ビューは、テーブルが要約またはグループ化されて、テーブルのグループを使いやすくすることです。
インデックス付きビューを使用すると、クエリがビューを使用でき、ビューにデータが既にあるため、基礎となるテーブルからデータを取得する必要はありません。これにより、パフォーマンスが向上します。
データベースを非正規化することなく、テーブルだけで同じ結果を達成することはできませんでした。
インデックス付きビューを使用することの利点の1つは、列が異なるテーブルにある2つ以上の列の結果を順序付けることです。つまり、table1およびtable2の結果であるビューがあり、table1.column1、table2.column2でソートされました。その後、column1、column2にインデックスを作成して、そのクエリを最適化できます
基本的に、ビューを使用してください。
- 多くのテーブルで同じ複雑なクエリを使用する場合、複数回。
- 新しいシステムが古いテーブルデータを読む必要があるが、知覚されたスキーマを変更するのを見ない場合。
インデックス付きビューは、冗長性を増やすことなく、より特定のインデックスを作成することにより、パフォーマンスを改善できます。
ビューは、名前が付けられ、データベースに保存されている選択されたステートメントです。ビューの主な利点は、それが作成されると、書きたい他の選択ステートメントのテーブルのように機能することです。
ビューの選択ステートメントは、テーブル、その他のビュー、機能を参照できます。
ビュー(インデックス付きビュー)にインデックスを作成して、パフォーマンスを向上させることができます。インデックス付きビューは自己育成であり、基礎となるテーブルの変更をすぐに反映しています。
インデックス付きビューが1つのテーブルから列のみを選択する場合、そのテーブルにインデックスを配置してそのテーブルを直接クエリすることもできます。ビューはデータベースのオーバーヘッドのみを引き起こします。ただし、Selectステートメントが結合などの複数のテーブルをカバーしている場合は、ビューにインデックスを配置することでパフォーマンスブーストを獲得できます。