在使用Server 12.0.6205.1 ( Server 2014 SP3 CU1)的VM上,我多次遇到这种情况。
使用SSMS,我将运行几次存储过程。它总是要花4秒的时间才能运行。(“客户端统计”中的“服务器回复等待时间”)。然后清除计划缓存:
DBCC FREEPROCCACHE现在,相同的存储过程将持续运行400 ms。
这个VM在非常轻的负载下。只是我每隔几天就戳一次。
此VM是存在性能问题的生产服务器的副本。所以好像是坏计划被卡在计划缓存里了?很明显,我希望这些电话总是快速的。有什么问题,我该如何解决?
发布于 2023-03-27 05:02:21
计划一直保存在缓存中,直到内存压力、某个级别的统计数据更新或您重新编译它们为止。如果为返回例如1条记录的值编译了一个计划,那么,稍后将运行一个返回1,000的值,那么性能就会变差。反之亦然。
比较缓慢和快速的计划。
另外,您可以将计划句柄传递给FREEPROCCACHE,以便一次只删除一个计划。安全多了。- https://dba.stackexchange.com/users/6597
https://dba.stackexchange.com/questions/269758
复制相似问题