SQL Server佔用服務器內存太高

SQL Server對服務器內存的使用策略是用多少內存就佔用多少內存,只用在服務器內存不足時,纔會釋放一點佔用的內存,因此SQL Server 服務器內存每每會佔用很高。

查看內存狀態:

DBCC MemoryStatus

 

 

這些內存通常都是Sql Server運行時候用做緩存的:
緩存

1. 數據緩存:執行個查詢語句,Sql Server會將相關的數據頁(Sql Server操做的數據都是以頁爲單位的)加載到內存中來, 下一次若是再次請求此頁的數據的時候,就無需讀取磁盤了,大大提升了速度。服務器

 
2.執行命令緩存:在執行存儲過程,自定函數時,Sql Server須要先二進制編譯再運行,編譯後的結果也會緩存起來, 再次調用時就無需再次編譯。

 

 

能夠調用如下幾個DBCC管理命令來清理這些緩存:函數

DBCC FREEPROCCACHE  --清除存儲過程相關的緩存
DBCC FREESESSIONCACHE  --會話緩存
DBCC FREESYSTEMCACHE('All')  --系統緩存
DBCC DROPCLEANBUFFERS  --全部緩存

 

可是,這幾個命令雖然會清除掉現有緩存,爲新的緩存騰地方,可是Sql server並不會所以釋放掉已經佔用的內存。Sql Server並無提供任何命令容許咱們釋放不用到的內存。所以咱們只能經過動態調整Sql Server可用的物理內存設置來強迫它釋放內存。
spa


清除SQL Server服務器內存的方法:3d

1,清除全部緩存code

DBCC DROPCLEANBUFFERS

 

2,調整可以使用物理內存orm

 

 

 

 

把最大服務器內存改爲1G,肯定後內存就會被強制釋放,而後把最大服務器內存改爲合適的值。server

相關文章
相關標籤/搜索