我注意到sql Server 2008 r2表达的奇怪行为:
通常我的查询执行时间是~650ms,但如果我打开Management Studio并运行任何简单查询(例如SELECT * FROM Something),执行时间将变为~40ms.如果我关闭管理工作室,这个值会恢复正常~650ms
无论执行何种查询:从Management Studio或我的应用程序(它使用ADO.Net)
ARITHABORT设置无效
为什么会这样?
解决方法
您要查询的数据库可能已启用“自动关闭”.
SSMS的连接会停止数据库关闭.关闭SSMS时,数据库将关闭.后续调用需要打开它.
自动关闭是sql Server Express的默认设置,不是一个好主意:
> http://blogs.msdn.com/b/buckwoody/archive/2009/06/24/sql-server-best-practices-autoclose-should-be-off.aspx
> http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/sql-server-auto-close
> https://stackoverflow.com/questions/706732/what-is-the-auto-close-option-when-creating-a-new-database-in-sql-server-2008