我已经学会了一些诊断 SQL Server 上 RAM 不足的好方法,我想知道是否应该将计划缓存添加到这个工具箱中。
RAM 不足的一个迹象是计划缓存的寿命不长。您可以轻松地在其中找到最旧的缓存计划sys.dm_exec_query_stats
,并且可以从中找到计划缓存使用了多少 RAM SELECT * FROM sys.dm_os_memory_clerks WHERE TYPE = 'CACHESTORE_SQLCP'
。其中任何一个都可以转化为有关缺乏 RAM 的系统的可操作信息吗?
我怀疑这两种观点都没有提供有用的指标。如果我的服务器内存的 2% 或 20% 被计划缓存占用了,那又怎样?同样,如果我最旧的缓存计划是一个月前的,那又怎样?据我所知,这可能只是一个非常常用的计划。