標籤:
原文: 第十七章——配置SQLServer(2)——32位和64位系統中的記憶體配置
前言:
本文講述32位和64位系統中的記憶體配置,在SQLServer 2005/2008中,DBA們往往嘗試開啟AWE來限制記憶體。但是,在SQLServer2012以後,這個選項將被棄用,所以不能使用這種方式來控制32位執行個體的虛擬位址空間。如果你伺服器上有很多記憶體,就只能升級到64位系統。下面是微軟給出的記憶體限制:
雖然2012以後已經棄用AWE,但是瞭解一下32位系統如何使用AWE(Address WindowingExtensions)來使得作業系統能夠訪問更多的記憶體。如果可用的實體記憶體比Maximum Server memory選項的還要多,那麼SQLServer會鎖定在Maximum Server memory選項,如果Maximum Server memory選項沒有設定或者實體記憶體比這個選項設定得還要少,那麼SQLServer執行個體會佔用所有可用記憶體,僅保留256MB。
準備工作:
記住當前的Maximum Server memory和Minimum Server memory的值,可以在視圖sys.configurations表中查看,這個視圖包含有系統層級的的配置資訊。
步驟:
1、 用以下語句設定SQLServer的最小記憶體:
EXEC sp_configure ‘min server memory (MB)‘, 1024GORECONFIGURE WITH OVERRIDE ;GO
2、 用以下指令碼設定最大記憶體:
EXEC sp_configure ‘max server memory (MB)‘, 3000GORECONFIGURE WITH OVERRIDE ;GO
分析:
步驟1配置最小記憶體給SQLServer,預設值為0,可以設定最小值小於或等於max server memory的值。
步驟2配置SQLServer的最大分配記憶體,預設值為2TB,這個值不能少於64M。
所有的設定都儲存在SQLServer的buffer pool中。如果你使用32位系統,你的SQLServer不能使用超過3G的記憶體。不管你有多少可用記憶體在伺服器上。除非開啟了AWE和PAE。
如果系統中的系統服務僅僅運行了SQLServer,那麼設定最大記憶體即可,但是如果有多個服務同時運行。並且網域控制站使用了最大記憶體,SQLServer將會記憶體不足,換個角度,如果SQLServer使用了最大記憶體,那麼網域控制站又會記憶體不足,引起,應該合理配置記憶體,以避免記憶體的溢出。
第十七章——配置SQLServer(2)——32位和64位系統中的記憶體配置