SQL Serverでは、実際のテーブルの代わりにインデックスビューを使用するのはいつですか?

StackOverflow https://stackoverflow.com/questions/3861476

  •  27-09-2019
  •  | 
  •  

質問

SQL Serverでは、ビューでインデックスを作成できることを知っています。ビューは、基礎となるテーブルからデータを保存します。その後、ビューを照会できます。しかし、なぜテーブルの代わりにビューを使用する必要があるのですか?

役に立ちましたか?

解決

ビューを使用してクエリを簡素化することをお勧めします。私たちのプロジェクトでは、コンセンサスはインターフェイスのビュー、特に「レポートインターフェイス」を使用することです。

クライアントのテーブルがあると想像してください。マネージャーは、クライアントの名前とアカウントの残高(または何でも)で毎朝レポートを望んでいます。レポートをテーブルに対してコーディングすると、レポートとテーブルの間に強力なリンクが作成され、後で変更が困難になります。

一方、レポートがビューにヒットした場合、データベースを自由にひねることができます。ビューが同じである限り、レポートは機能しますが、マネージャーは幸せで、データベースを自由に試すことができます。クライアントメタデータをメインクライアントテーブルから分離したいですか?それのために行き、ビューの2つのテーブルに参加してください。あなたはクライアントのカート情報を非正規化したいですか?問題ありません、ビューは適応できます...

正直に言うと、それはプログラマーとしての私の見解ですが、他の用途は確かにDBの達人によって見つかります:)

他のヒント

テーブルは、データが物理的に保存される場所です。

ビューは、テーブルが要約またはグループ化されて、テーブルのグループを使いやすくすることです。

インデックス付きビューを使用すると、クエリがビューを使用でき、ビューにデータが既にあるため、基礎となるテーブルからデータを取得する必要はありません。これにより、パフォーマンスが向上します。

データベースを非正規化することなく、テーブルだけで同じ結果を達成することはできませんでした。

インデックス付きビューを使用することの利点の1つは、列が異なるテーブルにある2つ以上の列の結果を順序付けることです。つまり、table1およびtable2の結果であるビューがあり、table1.column1、table2.column2でソートされました。その後、column1、column2にインデックスを作成して、そのクエリを最適化できます

基本的に、ビューを使用してください。

  1. 多くのテーブルで同じ複雑なクエリを使用する場合、複数回。
  2. 新しいシステムが古いテーブルデータを読む必要があるが、知覚されたスキーマを変更するのを見ない場合。

インデックス付きビューは、冗長性を増やすことなく、より特定のインデックスを作成することにより、パフォーマンスを改善できます。

ビューは、名前が付けられ、データベースに保存されている選択されたステートメントです。ビューの主な利点は、それが作成されると、書きたい他の選択ステートメントのテーブルのように機能することです。

ビューの選択ステートメントは、テーブル、その他のビュー、機能を参照できます。

ビュー(インデックス付きビュー)にインデックスを作成して、パフォーマンスを向上させることができます。インデックス付きビューは自己育成であり、基礎となるテーブルの変更をすぐに反映しています。

インデックス付きビューが1つのテーブルから列のみを選択する場合、そのテーブルにインデックスを配置してそのテーブルを直接クエリすることもできます。ビューはデータベースのオーバーヘッドのみを引き起こします。ただし、Selectステートメントが結合などの複数のテーブルをカバーしている場合は、ビューにインデックスを配置することでパフォーマンスブーストを獲得できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top