0

我有 SQLServer 2005 数据库。我增加了数据库缓冲区大小。执行一个查询,然后sqlserver.exe mem使用量增加,这是正常的。在此查询之后,DB 处于睡眠模式,但 RAM PF Usage 并没有减少。我想在查询后,删除 mssql 缓存。

查询后,我执行这些: DBCC FREESYSTEMCACHE('SQL Plans'); DBCC 自由会话缓存; DBCC FREEPROCCACHE;

但不会减少 RAM PF Usage。我怎样才能做到这一点?

4

1 回答 1

1

您正在执行的 dbcc 语句释放计划缓存,而不是缓冲区缓存。

尝试使用:

checkpoint
GO

dbcc dropcleanbuffers

即使在运行后,SQL Server 也可能不会归还内存。如果您正在使用动态内存管理(最小服务器内存 < 最大服务器内存),那么通常只有在存在内存压力时才会回馈。

如果您使用的是静态分配(最小服务器内存 = 最大服务器内存),它永远不会归还它。

此外,如果您只是在测试东西,这些东西也很好。我不建议在重要的系统上这样做。

于 2013-02-21T08:34:32.507 回答