SQL Server查询在第一次运行时非常缓慢

3
有一个有点奇怪的问题...当我在重启电脑后第一次启动我的.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


2
我也会在ServerFault.com上尝试这个。 - DOK
你有进展吗?我们有一个客户遇到了听起来与您相同的问题。简单的32位ODBC连接在64位Windows 7重启后需要50秒才能连接,但之后连接就很快了。我完全被卡住了 :-( - J Francis
我发了电子邮件给数据库管理员询问他是否记得。 - JoelFan
2个回答

7

很可能您正在享受缓存效果。当您第一次运行查询时,SQL会生成执行计划并将其缓存。如果您再次运行查询,则它会记住执行计划,在某些情况下可以看到速度提升。因此,如果您正在测试查询,则需要清除缓存。以下是我的做法。

引用自Devx网站(DEVx Tip

运行DBCC DROPCLEANBUFFERS,它会清除缓存中的所有数据。 然后运行DBCC FREEPROCCACHE,它会清除存储过程缓存。

希望对您有所帮助。


1
检查您的SQL Server客户端配置设置...也许TCP/IP不是列表中的第一项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接