2013-02-21 111 views
0

我有SQLServer 2005數據庫。 我增加了DB緩衝區大小。執行一個查詢,然後sqlserver.exe的mem用法增加,這個 是正常的。在查詢之後,數據庫處於睡眠模式,但不會降低RAM PF的使用率。我想在查詢後,刪除mssql緩存。Sqlserver內存大小

查詢後,我執行這些: DBCC FREESYSTEMCACHE('SQL Plans'); DBCC FREESESSIONCACHE; DBCC FREEPROCCACHE;

但不降低RAM PF的使用量。我怎樣才能做到這一點?

+2

SQL Server被設計爲貪心內存。如果它本身要再次使用它,爲什麼它應該將內存返回給操作系統? – 2013-02-21 07:41:11

+0

下次還增加緩衝區大小,不要在緩衝內存之前使用。 – 2013-02-21 07:43:44

回答

1

正在執行的dbcc語句釋放計劃高速緩存,而不是緩衝區高速緩存。

嘗試使用:

checkpoint 
GO 

dbcc dropcleanbuffers 

即使運行此之後,SQL Server可能不會給內存回來。如果您正在使用動態內存管理(最小服務器內存<最大服務器內存),那麼通常只會在存在內存壓力時返回。

如果您使用靜態分配(最小服務器內存=最大服務器內存),它將永不放棄。

另外,如果你只是在測試的東西搞亂,這個東西沒問題。我不會推薦在重要系統上使用它。