我有两个 SQL Server,我是系统管理员。一个是名为 LIGHT 的 2008R2 服务器,因为该盒子几乎没有活动。另一个是名为 HEAVY 的 2005 年服务器,它在一天中看到了相当不错的、持续的活动量。两台服务器位于同一个数据中心。我在 LIGHT 上创建了一个链接服务器,以便它可以看到 HEAVY。
我创建了一个关于 HEAVY 的视图,以便在过去几天按天计算每个位置的销售额,或多或少:
SELECT BusinessDate,
Location,
SUM(Sales)
FROM Last7DaysOfSales
GROUP BY BusinessDate, Location
当我使用 SSMS 在 HEAVY 上运行此视图时,它会在 30 秒内运行。当我通过链接服务器连接从 LIGHT 运行相同的视图时,需要 17 分钟!我希望使用视图意味着“繁重的工作”将在 HEAVY 上完成,并将视图的结果发送到 LIGHT。考虑到可笑的运行时间,LIGHT 似乎正在拉动所有记录并自己完成工作?
我可以处理这个问题的最有效方法是什么?是否有可能让 HEAVY 在本地处理执行并将结果传递给 LIGHT?还是我唯一的选择是在 HEAVY 上创建一个夜间进程,每晚将此视图的结果转储到一个表中,然后简单地让 LIGHT 获取表中的数据?
提前谢谢了。