sql資料庫伺服器,記憶體佔用過大怎麼辦?2019-08-30 20:53:12

Sql Server系統記憶體管理在沒有配置記憶體最大值,很多時候我們會發現執行Sql Server的系統記憶體往往居高不下。這是由於他對於記憶體使用的策略是有多少閒置的記憶體就佔用多少,直到記憶體使用慮達到系統峰值時(預留記憶體根據系統預設預留使用為準,至少4M),才會清除一些快取釋放少量的記憶體為新的快取騰出空間。

這些記憶體一般都是Sql Server執行時候用作快取的,例如你執行一個select語句, 執行個儲存過程,呼叫函式;

1。 資料快取:執行個查詢語句,Sql Server會將相關的資料頁(Sql Server操作的資料都是以頁為單位的)載入到記憶體中來, 下一次如果再次請求此頁的資料的時候,就無需讀取磁碟了,大大提高了速度。

2。執行命令快取:在執行儲存過程,自定函式時,Sql Server需要先二進位制編譯再執行,編譯後的結果也會快取起來, 再次呼叫時就無需再次編譯。

在我們執行完相應的查詢語句,或儲存過程,如果我們不在需要這些快取,我可以將它清除,DBCC管理命令快取清除如下:

——清除儲存過程快取 DBCC FREEPROCCACHE ——注:方便記住關鍵字FREEPROCCACHE 可以拆解成FREE(割捨,清除) PROC(儲存過程關鍵字簡寫),CACHE(快取)——清除會話快取DBCC FREESESSIONCACHE ——注:FREE(割捨,清除) SESSION(會話)CACHE(快取) ——清除系統快取 DBCC FREESYSTEMCACHE(‘All’) ——注:FREE SYSTE MCACHE ——清除所有快取 DBCC DROPCLEANBUFFERS ——注:DROP CLEAN BUFFERS

sql資料庫伺服器,記憶體佔用過大怎麼辦?使用者13937840151202019-08-31 04:57:23

一百萬記錄備份,低配機器應該也不會超過十分鐘。我建議從以下三方面排查:

1、檢查伺服器效能,是否和應用混用,如果是,考慮獨立 DB 伺服器。

2、檢查日誌是否沒維護過。

3、備份策略調整為全備+增量+日誌混合方式。總體來說,MSSQL2005維持線上幾百 GB 是比較輕鬆的狀態,你對此要有信心,遇到問題的時候理清思路,參考以下方面:1、系統日誌2、MSSQL 日誌3、磁碟、CPU、記憶體等利用情況4、資料庫日誌檔案、索引維護情況5、管理時可以用用 MSSQL 自帶的 report 以及索引統計資訊等表