我们有一个性能问题,我们通过重新启动 sql server 服务解决了这个问题。这显然不是我们想要继续处理性能问题的方式。
当 sql server 在重新启动后性能更好时,对我来说可能的原因是
为了排除错误的查询计划被缓存的查询计划,我们首先删除了查询缓存
DBCC FREEPROCCACHE;
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在。
我仍然不确定内存压力。页面预期寿命在性能不佳期间下降到 50 秒。但是缓存命中率是 100%。
这些数字是暗示内存压力还是有其他可能的原因?
我在我们重新启动 sql server 服务的地方放了一条漂亮的红线。
在问题发生时,我们没有比平时更多的请求。
如果您想知道为什么重新启动后效果更好,您需要跟踪所有这些行都变得波浪状时正在运行的内容。
当您清除计划缓存时,它对当前正在执行的查询没有帮助,也不能保证您缓存的下一个计划会很好。在你确切地知道发生了什么之前,我建议不要这样做。
查看监控工具的一部分,该部分会告诉您遇到问题时正在运行哪些查询。如果您的监控工具没有告诉您这一点,那么就该找一个新的了。
下次发生这种情况时,请使用sp_WhoIsActive 之类的脚本来捕获当前正在执行的查询。
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |