使用sqlserver和IIS開發.net B/S程序時,數據量逐漸增多,用戶也逐漸增多,那麼服務器的穩定性就須要維護了。數據庫如何佔用更小內存,無用的日誌如何瞬間清空?算法
今天在給一個客戶維護網站的時候,發現運行了2年的程序,數據庫中主表的數據已超過70萬條,按理說這樣的數據量根本不算多。數據庫是Sqlserver2012版本,服務器是Windows Server 2008。sql
在遠程鏈接過程當中,IIS和sqlserver老是打開一下子自動閃退,打開任務管理器,發現IIS進程佔用幾百MB內存,數據庫進程佔用了將近600M內存。爲了讓服務器穩定運行IIS和sqlserver 我強制重啓了服務器。數據庫
重啓後,發現數據庫和IIS都能正常打開使用了。數據庫的日誌文件已經有2個多GB,數據文件不到200MB。因而開始清空數據庫日誌:服務器
須要用如下命令:sqlserver
1 ALTER DATABASE [數據庫名稱] SET RECOVERY SIMPLE -- 更改成簡單模式 2 3 DBCC SHRINKDATABASE([數據庫名稱]) --壓縮數據庫命令 4 5 ALTER DATABASE [數據庫名稱] SET RECOVERY FULL --恢復爲徹底模式
先將數據庫改成簡單模式,再壓縮數據庫,最後恢復徹底模式便可。這樣數據庫就回收了一部分空間,並清空了日誌,只保留了必要的數據。優化
另外,數據庫佔用的內存是能夠調控的,這裏說一下可視化界面的調控網站
第一步:打開數據庫 鏈接後 如圖操做 右鍵選擇屬性spa
選擇「內存」管理 .net
調整最大內存,便可。這樣就能夠限制數據庫佔用的內存了。固然,這只是臨時作法,真正優化數據庫內存還有不少方法,如分庫,分表,讀寫分離,程序優化,sql語句優化等。日誌
關於IIS的內存佔用過大,這裏就只能優化程序了,某些算法的升級,請求次數的減小均可以幫助優化IIS所佔用的內存。