我有SQLServer 2005 DB。 我增加了DB缓冲区大小。执行一个查询,然后sqlserver.exe mem使用量增加,这个 是正常的。在此查询之后,DB处于睡眠模式,但不会降低RAM PF的使用率。我想在查询之后删除mssql缓存。
查询后,执行以下命令:
DBCC FREESYSTEMCACHE('SQL计划');
DBCC FREESESSIONCACHE;
DBCC FREEPROCCACHE;
但不降低RAM PF的使用率。我怎么能这样做?
答案 0 :(得分:1)
您正在执行的dbcc语句释放计划缓存,而不是缓冲区缓存。
尝试使用:
checkpoint
GO
dbcc dropcleanbuffers
即使在运行此操作后,SQL Server也可能无法恢复内存。如果您正在使用动态内存管理(最小服务器内存< max服务器内存),那么通常它只会在有内存压力时返回。
如果你正在使用静态分配(最小服务器内存=最大服务器内存),它将永远不会回复。
此外,如果你只是在乱搞测试的东西,这个东西很好。我不建议在重要的系统上进行。