給sqlserver配置內存參數

操做環境:windows server 2003 R2 Enterprise Edition SP1 + 4G 內存 + Sqlsever 2005sql

在以上環境中,運行公司的ERP數據服務,sqlserver進程的內存佔用在穩按期一直是1600到1700之間,再高也沒有超過1700,而後ERP客戶端用戶常常發生保存單據幾分鐘都不成功的狀況,具體緣由不明,但重啓sqlserver服務就恢復正常,所以懷疑是內存太小的緣由。數據庫

如下步驟實現增長sqlserver內存分配量:windows

首先,在sqlserver management studio 中,在數據庫的服務器屬性中(非數據庫實例的屬性),是有內存配置選項的,其中最大服務器內存默認值是一個很大很大的值,但實際上根本沒有起做用,像我上面說的同樣,我服務器上的sqlserver進程佔用的安全

內存歷來沒有超過1700。服務器

也能夠經過如下語句實現配置:sqlserver

sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 3072
RECONFIGURE
GO

 

可是若是沒有在操做系統的啓動配置文件裏(boot.ini)修改相關配置(添加/PAE),上面的設置是沒有起做用的。spa

因此要使上面的設置可用,須要完成下面的兩個必要條件:操作系統

1、編輯 Boot.ini 文件,請按照下列步驟操做:code

  1. 單擊「開始」,指向「設置」,而後單擊「控制面板」。
  2. 在「控制面板」中,雙擊「系統」。
  3. 單擊「高級」選項卡,而後單擊「啓動和故障恢復」下的「設置」。
  4. 在「系統啓動」下,單擊「編輯」。

下面是我在原有配置下添加「 /PAE」後的結果server

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /PAE

2、能夠運行sqlserver.exe的用戶(在服務的屬性中查看「登陸」)須要有「鎖定內存頁」的權限。在組策略中進行設置:

開始->運行->gpedit.msc->組策略->計算機配置->windows配置->安全設置->本地策略->用戶權限分配->內存中鎖定頁面->屬性->添加用戶或組

 

完成以上步驟後,重啓服務器,再看sqlserver進程佔用的內存,發現很小很小,90M左右,但這個其實不是真實的佔用,上面給它鎖定的內存頁應該沒有加進去。

昨天下班完成的設置,今天一天ERP沒有反饋任何保存不成功的問題,後續再進行觀察相關狀況。

再提醒下,以上設置都是基於文章開頭描述的運行環境,其它系統和環境可能已作改變,具體請查閱相關官方文檔。

相關文章
相關標籤/搜索