合理配置SQLSERVER內存[z]

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

雖然這樣,但是SQLSERVER會約束自己的內存使用量,不過親們最好對SQLSERVER的內存使用作出合理的分配

 

SQLSERVER的內存用在哪裏?

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

如果這些信息沒有在數據庫中緩存,SQL都要重新計算一遍,花額外的時間,所以SQLSERVER對內存的需求是十分強烈的。

 

配置:

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

 

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

 

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

情況歸納如下:

一臺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的內存管理機制有了調整

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章