合理配置SQLSERVER內存

SQLSERVER是個很喜歡內存資源的程序,他的理想狀態就是把全部可能會用到的數據和結構都緩存在物理內存裏,以達到最優的性能。html

雖然這樣,可是SQLSERVER會約束本身的內存使用量,不過親們最好對SQLSERVER的內存使用做出合理的分配數據庫

SQLSERVER的內存用在哪裏?緩存

SQL會緩存大量的數據頁面,他還會緩存不少其餘信息,包括存儲過程的執行計劃 ,特定用戶的安全上下文等安全

若是這些信息沒有在數據庫中緩存,SQL都要從新計算一遍,花額外的時間,因此SQLSERVER對內存的需求是十分強烈的。服務器

配置:性能

(1)若是服務器支持64位操做系統,沒有特殊理由的話,請安裝64位系統。這樣SQL可以有效地使用 大於2GB的內存。若是必定要用32位系統,務必將SQLSERVER服務器屬性裏面的「使用AWE分配內存」打開。可是不要用boot.ini文件裏的/3GB這個開關,即不要在boot.ini文件里加上/3GB這個參數。操作系統

(2)儘可能使服務器專門供數據庫使用,不要將其餘服務(例如IIS,中間層應用服務等)安裝在同一臺機器上。多個生產應用服務在同一臺機器上運行,會大大增長維護成本server

(3)建議設置SQLSERVER max server memory(最大服務器內存),以確保Windows有足夠的內存供系統自己使用。htm

狀況概括以下:blog

一臺4GB機器,建議預留1GB,設置SQLSERVER max server memory爲2.8GB

一臺8GB機器,建議預留2GB,設置SQLSERVER max server memory爲6GB

一臺大於8GB的64位機器,建議預留3GB~4GB

若是一臺服務器上還有其餘應用使用內存,也要扣除他們的內存使用數

通常設置SQLSERVER min server memory(最小服務器內存)意義不大

(4)若是是企業版SQLSERVER,建議賦給SQLSERVER啓動賬號lock page in memory的權限

設置方法以下:

打開組策略(運行 ,輸入gpedit.msc)-》找到計算機配置-》Windows設置-》安全設置-》本地策略-》用戶權限分配-》鎖定內存頁
在鎖定內存頁上右鍵,打開鎖定內存頁屬性,添加SQLSERVER啓動賬號進去

(5)「set working set size」 這個SQLSERVER參數在如今的Windows上不能起到固定SQL物理內存的做用,因此請永遠不要使用

修改完配置以後須要重啓SQLSERVER服務才能生效!!!!!

除了配置以外還有一些應對內存錯誤的其餘一些建議:

升級Windows2003到SP2,或者使用Windows2008 ,這些版本的Windows的內存管理機制有了調整

升級硬件驅動程序,或者聯繫微軟技術服務,幫忙檢查是否是硬件方面問題引發

 

原文:https://www.cnblogs.com/lyhabc/archive/2012/09/28/2707857.html

相關文章
相關標籤/搜索