Ⅰ sql資料庫伺服器,內存佔用過大怎麼辦
SqlServer系統內存管理在沒有配置內存最大值,很多時候我們會發現運行SqlServer的系統內存往往居高不下。這是由於他對於內存使用的策略是有多少閑置的內存就佔用多少,直到內存使用慮達到系統峰值時(預留內存根據系統默認預留使用為准,至少4M),才會清除一些緩存釋放少量的內存為新的緩存騰出空間。
這些內存一般都是SqlServer運行時候用作緩存的,例如你運行一個select語句,執行個存儲過程,調用函數;
1.數據緩存:執行個查詢語句,SqlServer會將相關的數據頁(SqlServer操作的數據都是以頁為單位的)載入到內存中來,下一次如果再次請求此頁的數據的時候,就無需讀取磁碟了,大大提高了速度。
2.執行命令緩存:在執行存儲過程,自定函數時,SqlServer需要先二進制編譯再運行,編譯後的結果也會緩存起來,再次調用時就無需再次編譯。
在我們執行完相應的查詢語句,或存儲過程,如果我們不在需要這些緩存,我可以將它清除,DBCC管理命令緩存清除如下:
--清除存儲過程緩存
DBCCFREEPROCCACHE
--註:方便記住關鍵字FREEPROCCACHE可以拆解成FREE(割捨,清除)PROC(存儲過程關鍵字簡寫),CACHE(緩存)
--清除會話緩存
DBCCFREESESSIONCACHE
--註:FREE(割捨,清除)SESSION(會話)CACHE(緩存)
--清除系統緩存
DBCCFREESYSTEMCACHE('All')
--註:FREESYSTEMCACHE
--清除所有緩存
DBCCDROPCLEANBUFFERS
--註:DROPCLEANBUFFERS
Ⅱ resform資料庫日誌滿了怎麼處理
清理即可。
resform資料庫日誌滿了需要進行清理釋放空間。分離資料庫企業管理器,伺服器,資料庫,右鍵,分離資料庫,刪除LOG文件,附加資料庫,企業管理器,伺服器,資料庫,右鍵,附加資料庫此法生成新的LOG,大小隻有500多K再將此資料庫設置自動收縮或用代碼分離pubs,然後將pubs中的一個文件附加到當前伺服器。
打開企業管理器,直接在查詢分析器里執行,如果是FULL完整類型,修改為SIMPLE簡單類型,或者右鍵要壓縮的資料庫,屬性,選項,恢復模式,簡單。或者查詢資料庫內存,壓縮文件。