sql server對伺服器記憶體的使用策略是用多少記憶體就占用多少記憶體,只用在伺服器記憶體不足時,才會釋放一點占用的記憶體,所以sql server 伺服器記憶體往往會占用很高。
檢視記憶體狀態:
dbcc memorystatus這些記憶體一般都是sql server執行時候用作快取的:
1. 資料快取:執行個查詢語句,sql server會將相關的資料頁(sql server操作的資料都是以頁為單位的)載入到記憶體中來, 下一次如果再次請求此頁的資料的時候,就無需讀取磁碟了,大大提高了速度。
2.執行命令快取:在執行儲存過程,自定函式時,sql server需要先二進位制編譯再執行,編譯後的結果也會快取起來, 再次呼叫時就無需再次編譯。
可以呼叫以下幾個dbcc管理命令來清理這些快取:
dbcc freeproccache --但是,這幾個命令雖然會清除掉現有快取,為新的快取騰地方,但是sql server並不會因此釋放掉已經占用的記憶體。sql server並沒有提供任何命令允許我們釋放不用到的記憶體。因此我們只能通過動態調整sql server可用的物理記憶體設定來強迫它釋放記憶體。清除儲存過程相關的快取
dbcc freesessioncache --
會話快取
dbcc freesystemcache('
all') --
系統快取
dbcc dropcleanbuffers --
所有快取
清除sql server伺服器記憶體的方法:
1,清除所有快取
dbcc dropcleanbuffers2,調整可使用物理記憶體
把最大伺服器記憶體改成1g,確定後記憶體就會被強制釋放,然後把最大伺服器記憶體改成合適的值。
MySQL伺服器Swap占用
最近幾天,zabbix伺服器效能監控一直報警mysql伺服器swap占用超過50 對於mysql伺服器來說使用swap會嚴重影響資料庫效能。通過free命令檢視記憶體使用情況,資訊如下 total used free shared buffers cached mem 32880188 326289...
伺服器CPU被占用
8核cpu有4個被100 占用了,用系統top看不到是哪個程序占用,懷疑系統top命令已被修改,用stat檢查top檔案確認是被修改過,改用busybox命令來檢視程序資訊,發現異常程序,kill掉後cpu恢復正常。查詢程序資訊 top d1 查詢檔案路徑 輸出資訊從左至右分別為查詢的程式名 bas...
sqlserver伺服器 急救
今天突然發現,sqlserver伺服器 遠端桌面連不上了,但是資料庫都能正常連線,記得是上次更改了遠端桌面的埠,但是防火牆上沒有開啟規則。現在通過資料庫使用者解決方法如下 作為備忘 開啟xp cmdshell sql server blocked access to procedure xp cmd...