基本的に、最適化が必要なビューがあります。ビューは次のようになります。
SELECT *
FROM IM_Data.history.v_SystemInfo si
INNER JOIN IM_Data..systemOutDates od ON
si.TopId = od.TopId
AND si.OutDate = od.OutDate
WHERE
TopId = 196
ビューを次のようにすることができれば(明らかにできません):
SELECT @OutDate = OutDate
FROM IM_Data..systemOutDates
WHERE TopId = 196
SELECT *
FROM IM_Data.history.v_SystemInfo si
WHERE
TopId = 196 AND
OutDate = @OutDate
10倍速くなります。だから私が探しているのは、これを手伝ってくれるほど SQL をよく知っている人です。基本的に、TopDate を 1 回クエリしてから、すべての行で結合するのではなく、すべての行で同じものを使用するクエリが必要です (これは時間の無駄です)。
また、TopDate を削除して、ビューをクエリしているユーザーにそれを処理させることはできません。これは、ビューを使用するレガシー コードが多すぎるためです。したがって、唯一のオプションは、ユーザーが現在のようにクエリを実行できるようにすることですが、何らかの方法で結合のパフォーマンスの低下を解決します。
前もって感謝します!