32 位元 Windows Server 2003 Enterprise Edition 單一進程預設僅能使用 2GB 使用者模式位址空間。本文記錄透過 /PAE (Physical Address Extension) 與 AWE (Address Windowing Extensions) 為 SQL Server 釋放 4GB+ 實體記憶體的完整配置流程。
硬體與作業系統前提
- 伺服器主機板/晶片組支援 **PAE** (現代 x86 伺服器皆支援,如 HP G3 系列)。
- OS:Windows Server 2003 32-bit Enterprise/Datacenter Edition (Standard/Web 版不支援 >4GB)。
boot.ini 加入 /PAE 開關啟用實體位址擴充 (可寻址高達 64GB 實體記憶體)。
SQL Server 啟用 AWE 記憶體腳本
-- 1. 顯示進階選項
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
-- 2. 啟用 AWE (Address Windowing Extensions)
EXEC sp_configure 'awe enabled', 1;
RECONFIGURE;
GO
-- 3. 設定最大伺服器記憶體 (MB) - 例:保留 2GB 給 OS,其餘給 SQL
-- 假設實體 8GB,設定 6144 MB (6GB)
EXEC sp_configure 'max server memory', 6144;
RECONFIGURE;
GO
關鍵參數說明
| 參數 | 功能 | 注意事項 |
/PAE (boot.ini) | OS 層級啟用 36 位元實體位址匯流排,支援 >4GB 實體 RAM | 需 Enterprise/Datacenter 版;Standard/Web 版忽略此開關 |
awe enabled | SQL Server 引擎使用 AWE API 將資料頁鎖定於非分頁集區 (Non-paged Pool) | 僅 32 位元 SQL Server 需要;64 位元原生支援大記憶體無需此設定 |
max server memory | 限制 SQL Server 緩衝集區最大值,預留記憶體給 OS/其他服務 | **必設**,否則 SQL 會佔用所有 AWE 記憶體導致 OS 記憶體不足 |
/3GB (boot.ini) | 擴大使用者模式虛擬位址空間至 3GB (核心空間壓縮至 1GB) | **與 AWE 互斥**;若啟用 /3GB,SQL Server 最大僅能用 3GB 虛擬位址,無法受益於 >4GB 實體 RAM |
Windows Server 2003 版本記憶體支援上限對照表
| 版本 | CPU 上限 | x86 實體記憶體上限 | x64 實體記憶體上限 |
| Standard / Web / R2 Standard | 4 | 4 GB | — / 2 TB |
| Enterprise / R2 Enterprise | 8 | 32 GB (R2: 64 GB) | 64 GB / 2 TB |
| Datacenter / R2 Datacenter | 32 / 64 | 128 GB | 2 TB |
驗證 AWE 是否生效
- SQL Server 錯誤記錄檔啟動訊息:
Address Windowing Extensions enabled。
- 效能監視器 (PerfMon):
SQL Server:Memory Manager → Total Server Memory (KB) 超過 2,097,152 KB (2GB)。
- 工作管理員:
sqlservr.exe 「記憶體使用量 (私人工作集)」較小,**但「虛擬記憶體大小」或「提交大小」反映 AWE 配置量** (需啟用欄位檢視)。
遷移建議:直接上 64 位元
新部署**強烈建議直接使用 64 位元 Windows + 64 位元 SQL Server**,原生支援 TB 級記憶體,無需 PAE/AWE 複雜配置,效能與穩定度更優。32 位元 AWE 方案僅為存量系統延壽之用。