查询是一个包含大量分组级别和aggragate操作的选择.
使用SET ARITHABORT ON只需不到一秒钟,否则需要几分钟.我们在SQL Server 2000和2008上看到了这种行为.
解决方法
有点过时了,但对于那些在这里遇到类似问题的人来说……
我有同样的问题.对我来说,它原来是参数嗅探,起初我不太懂得关心.我添加了一个’set arithabort on’来解决这个问题,但后来又回来了.然后我读到:
http://www.sommarskog.se/query-plan-mysteries.html
它清除了 – 所有的东西.因为我使用Linq to SQL并且修复问题的选项有限,所以我最终使用查询计划指南(请参阅链接结尾)来强制执行我想要的查询计划.