テーブルからのSELECTデータとビューからのSELECTデータの違いは何ですか?
そして、それぞれの最良の使用法は何ですか?
4 に答える
Microsoft によると、SQL Server 2000/2005/2008 でインデックス付きビューを使用すると、パフォーマンスが向上します。
インデックス付きビューは、次の方法でクエリのパフォーマンスを向上させることが
できます。
2. テーブルを事前に結合し、結果のデータ セットを保存できます。
3.結合または集計の組み合わせを保存できます
ただし、テーブルのインデックスと同様に、ビューのインデックスにも変更のオーバーヘッドが発生します。そのため、実行時の速度向上の利点がビューのインデックスの更新にかかる時間を超える場合にのみ、ビューにインデックスを追加してください。
以下のリンクは、これに関する詳細情報を提供します (いつ何を使用するかについて)。
ほとんどのデータベースでは、機能的に互換性があります(マテリアライズド・ビューは無視されます。マテリアライズド・ビューは、とにかくまったく異なるものです)。ビューを作成する一般的な理由は2つあります。1.抽象化(および列エイリアシング)メカニズム、および2.アクセス許可とアクセス制御用。しかし、効率に関しては、それは問題ではありません。
これは、データベースとビューの定義によって異なります。
列のエイリアスを作成したり、単純な計算を実行したりする単純なビューは、クエリを直接実行する場合と同じです。
ただし、場合によっては、ビューがはるかに遅くなることがあります。例:Oracleでは、ビュークエリをネストしすぎると(たとえば、あるビューが別のビューをテーブルとして使用したり、別のビューを使用したりするなど)、ひどいパフォーマンスが発生する可能性があります。
一般に、問題の特定のデータベースとクエリでテストする必要があります。
このように考えてください:
ビューは、サーバー上に存在し、SQLエンジンによってコンパイルされた単なるselectステートメントです。
通常、ビューはテーブルからの結果を制限/簡略化するために使用されます。
よろしくK