3

有点奇怪的问题......当我在重新启动机器后第一次启动我的 .NET 应用程序时,SQL Server 查询真的很慢......当我暂停调试器时,我注意到它一直挂在从查询中获取响应. 这仅在连接到远程 SQL 服务器 (2008) 时发生......如果我连接到本地计算机上的一个,那很好。此外,如果我重新启动应用程序,它运行速度很快,即使在远程 SQL 服务器之外,后续运行也很好。唯一的问题是当我在重新启动机器后第一次连接到远程 SQL 服务器时。更重要的是,我什至注意到与连接到远程 SQL 服务器的第 3 方应用程序(也是 .NET)相同的行为。

另一条信息...自从我将机器从 XP 升级到 Win7(64 位)后,这才开始发生。此外,我团队中升级到 Win7 的其他开发人员也看到了相同的行为(包括我们正在开发的应用程序和第 3 方 .NET 应用程序)。

编辑:由于评论者的建议,也复制到https://serverfault.com/questions/100141/sql-server-queries-are-really-slow-only-on-first-run

4

2 回答 2

7

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

引自 Devx 网站(DEVx 提示

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

高温高压

于 2010-01-06T17:33:55.430 回答
1

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

于 2010-01-06T17:25:57.747 回答