基本上我们有一个需要优化的视图。视图现在看起来像这样:
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,然后在所有行上使用相同的查询,而不是在每一行上加入(因为那是浪费时间)。
而且我无法删除 TopDate 并让查询视图的用户处理它,因为使用视图的遗留代码太多。所以唯一的选择是让用户按现在的方式查询它,但仍然以某种方式解决了连接的性能损失。
提前致谢!