私の MS Sql Server Database には 4 つのビューがあり、それらはすべて非常に高速 (2 秒未満) で、すべて 50 行未満を返します。
しかし、これら 4 つのビュー (左外部結合) を結合するクエリを作成すると、完了するまでにほぼ 1 分かかるクエリが取得されます。
ここでクエリオプティマイザーが悪い仕事をしていると思います。これを高速化する方法はありますか。4 つのビューのそれぞれをテーブルにコピーして、それらを結合したくなるのですが、これは回避策が多すぎるように思えます。
(補足:ビューは別のデータベースからのものであり、そこでは何も変更できないため、テーブルにインデックスを設定することはできません。したがって、これはオプションではありません)
EDIT:申し訳ありませんが、SQLクエリを投稿しても役に立たないと思います。それらは非常に複雑で、約 50 の異なるテーブルを使用します。一部のデータベースで実行計画を生成するための十分なアクセス権がないため、実行計画を投稿することもできません。
現時点での最善の解決策は、各クエリの結果を格納する一時テーブルを生成することだと思います。