さまざまな where 句を使用して複数のテーブルを複数結合するケースがあります。
単純なビューでは、常に select ステートメントが実行されます (これは、どのような場合でもデータベースに保存されるものです)。そのため、後でデータをフィルター処理するのは時間の無駄に思えます。
インデックス付きビューでも同じことができますが、インデックスを使用することで速度も向上します。MSDNでは、ビューで一意のクラスター化インデックスが作成されると、結果セットがテーブルと同じようにデータベースに格納されることも読みました。
複数の結合は、クエリの where 句を介して正しいデータを取得します。最初にすべてを取得して後でフィルター処理する必要はありません (単純なビュー)。また、頻繁に変更されるデータのインデックス付きビューのインデックスを維持する必要もありませんが、結果としてより複雑なクエリで。
これらの結合には、最大 20 個のテーブル (インデックス付きビューがサポートしていないため、いずれかの方法で記述する必要があるいくつかの外部 (2 ~ 4) 結合) が含まれ、結果の行は数千 (それぞれに約 2 ~ 400 万行) になります。見る)。
これは設計上の問題ですが、この場合、最も効率的 (パフォーマンスとストレージの観点から) は何でしょうか?
PSフロントエンド環境の開発で毎回クエリを書くのはかなり面倒なので、別の解決策を探しています。