对于给定的查询,在进行本地数据库调用的 Web 应用程序中加载页面通常需要 10-15 秒。加载完全相同的页面有时需要大约 10 到 15 倍的时间,而且我已经将额外的页面加载时间追溯到增加的 SQL 查询执行时间。当谈到 SQL 时,我是个新手,所以除了检查我的 CPU 和内存(我从来没有超过 50%),我不知道从哪里开始。
我尝试搜索类似的问题/解决方案,但通常只找到对内存不足的人的引用,或者专门基于优化始终运行缓慢的存储过程的指令。这些似乎都没有解决我的问题,即运行完全相同的查询有时会比我在不同时间运行它们时长 10-15 倍。不幸的是,我无法找到任何直接的解决方法,例如重新启动计算机。
在过去的~2 周内,这种情况已经发生了 3 次。前一刻它工作正常,下一刻,它需要 10 倍的时间。最终,它恢复正常 - 两次我在没有关机的情况下过夜/周末离开我的电脑,当我回来并再次尝试时恢复到快速加载时间。在这两种情况下,我都没有退出任何应用程序或显式更改系统状态。
我在 Windows 8 上运行 SQL Server 2012,如果这很重要的话。我不知道为什么会这样,所以任何提示将不胜感激。
谢谢,大卫
编辑:由我的前同事回答:
运行此查询:dbcc freeproccache
解决它。在这里解释:http: //msdn.microsoft.com/en-us/library/ms174283.aspx
对他的快速解释是,“SQL 在第一次执行 proc 时计算出一个查询计划。如果第一次执行是非典型的,它可能会导致存储一个错误的计划。”
感谢大家的回应。