合理配置SQLSERVER內存


合理配置SQLSERVER內存

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM