LINK:理解性能的奥秘——应用程序中慢,SSMS中快: MVP黄钊吉(發糞塗牆)
在实际应用中,最重要的SET选项是ARITHABORT,因为在应用程序和SSMS中,该选项的默认值是不同的。这也是为什么你的语句在应用程序中慢但是在SSMS中能运行良好的原因之一。应用程序使用了计划因为参数的实际值不同而被嗅探成不同的查询计划,而当你在SSMS中运行语句是,很可能没有ARITHABORT ON 的计划在计划缓存中,所以SQL Server会对当前参数值创建查询计划。因此,你可以通过在SSMS的执行界面中加上SET ARITHABORT OFF命令来验证这个问题。