首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

突破 2GB 記憶體限制:SQL Server 2005 AWE 與 /3GB 實測

     編輯:關於SqlServer

32 位 Windows 進程預設僅能定址 2GB 使用者空間 (核心佔 2GB)。資料庫伺服器常裝 4GB+ 實體記憶體,若無法利用則浪費。解決方案:

1. 啟用 /3GB 開關 (BCD 編輯)

  • 修改 boot.ini (或 bcdedit) 加入 /3GB,使用者空間擴至 3GB,核心壓縮至 1GB。
  • 需搭配 /PAE (Physical Address Extension) 讓 OS 看見 4GB 以上實體記憶體。
  • SQL Server 啟動參數加入 -g 保留記憶體給非緩衝區配置 (如 CLR、擴展預存程序)。

2. 啟用 AWE (Address Windowing Extensions)

  • sp_configure 'awe enabled', 1; RECONFIGURE;
  • SQL Server 以 AWE API 將資料頁對應至 4GB 以上實體記憶體,繞過 2GB/3GB 虛擬位址限制。
  • 需授予服務帳號「鎖定記憶體頁面」權限 (Local Security Policy → Lock pages in memory)。

實測環境

  • Windows Server 2003 Enterprise x86 + 8GB RAM
  • SQL Server 2005 Enterprise x86
  • 啟用 /3GB /PAE + AWE + -g256
  • 目標記憶體設定 6GB,緩衝區快取命中率顯著提升,實體 IO 下降 40%+。

注意事項

  • AWE 僅供 32 位 Enterprise/Datacenter 版使用;64 位元版本原生支援大量記憶體,無需 AWE。
  • /3GB 可能導致核心資源耗盡 (PTE、Non-paged pool),高負載下需監控核心記憶體。
  • 現代部署建議直接採用 64 位元 SQL Server + 64 位元 OS,徹底解決記憶體上限問題。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved