我在 SQL Server 2014 SP2 中有一个 T-SQL 存储过程,它在服务器上花费的时间是我在本地环境中花费的时间的 3 倍。
我将本地数据库恢复到服务器上的数据库,因此架构和数据是相同的。
我是一名程序员,并不是真正的 DBA,所以请耐心等待。
在您查看 XML 之前,执行计划似乎是相同的。在我的本地环境中,Stream Aggregate 用于其中一个查询以进行不同的选择,而在服务器上,它看起来像是 Sort 与散列一起使用。
服务器的处理器比我的(野兽)本地机器少的事实似乎导致了这个问题。每个查询在服务器上都需要更长的时间。这可能是在服务器上选择排序/散列而不是流聚合的原因吗?
有没有办法强制流聚合?
这是存储过程的 SQL:http : //pastebin.com/kkXM3Bsf
这是我本地环境的执行计划:http : //pastebin.com/0u7SHxnM
这是服务器的执行计划:http : //pastebin.com/9sE9DfM0