有点奇怪的问题......当我重启机器后第一次启动.NET应用程序时,SQL Server查询真的很慢......当我暂停调试器时,我注意到它在获取响应时挂起了来自查询。这仅在连接到远程SQL服务器(2008)时发生...如果我连接到本地计算机上的一个,那很好。此外,如果我重新启动应用程序,它可以快速工作,甚至远离SQL服务器,后续运行也很好。唯一的问题是我重新启动计算机后第一次连接到远程SQL服务器。更重要的是,我甚至注意到与第三方应用程序(也是.NET)同样连接到远程SQL服务器的相同行为。
另一条信息......自从我将我的机器从XP升级到Win7(64位)以来,这只是开始了。此外,我的团队中升级到Win7的其他开发人员也看到了相同的行为(包括我们正在开发的应用程序和第三方.NET应用程序)。
编辑:由于评论者的建议
,也复制到https://serverfault.com/questions/100141/sql-server-queries-are-really-slow-only-on-first-run答案 0 :(得分:7)
您很可能正在享受缓存效果。首次运行查询时,SQL会生成执行计划,然后对其进行缓存。如果再次运行查询,它会记住执行计划,在某些情况下,您会看到速度增益。因此,如果您正在测试查询,则需要清除缓存。以下是我的工作。
引自Devx网站(DEVx Tip)
运行DBCC DROPCLEANBUFFERS,它清除缓存中的所有数据。 然后运行DBCC FREEPROCCACHE,它清除存储过程缓存。
HTH
答案 1 :(得分:1)
检查您的SQL Server客户端配置设置...可能TCP / IP不在列表中的第一位。