爱子日志

在32位操作系统上,如何为SQL Server分配大于2GB的内存?

有多种途径为SQL Server分配大于2GB的内存。

/3GB
默认情况下,32位的操作系统只能直接分配4GB的内存,其中2GB内存空间是系统预留了供自己使用的。所以,最多只剩下2GB 的VAS(虚拟地址空间)给所有的应用程序,比如SQL Server。你可以启用系统启动文件Boot.ini上的/3GB标记增加内存,使应用程序可利用的内存达到3GB。需要注意的是,VAS仅仅是所有可供使用的地址集,不是物理内存。

PAE (物理地址扩展)
PAE是IA32处理器新增的功能,用于分配大于4GB的物理内存。可以通过开启系统启动文件boot.ini上的/PAE开关启用PAE。
AWE (址窗口化扩展控件)

AWE可以在32位操作系统上扩展应用程序的执行能力。它允许应用程序访问超出已配置的最大虚拟内存地址空间的可用物理内存。
SQL Server 2005的优势是它支持AWE内存映射这种动态分配方式。如果SQL Server只需要很少的资源,它会通过AWE将多余部分内存返还给操作系统供其他的进程或应用程序使用。另外,AWE被支持的动态映射物理内存只能小于已配置的最大虚拟内存地址空间。而在64位系统上有启用AWE配置选项,但是它的配置是被忽略不计的。

注意:
①启用PAE是目的是让AWE内存访问量大于4GB。如果/PAW的开关没有开启,当内存超过4GB的时候,AWE无法再预置内存。
②当/3GB开关与/PAE开关同时启用,操作系统不能使用超过16GB的内存。这是由于考虑到内核虚拟内存空间。如果系统重启的时候在boot.ini文件中开启/3GB开关,而系统又有大于16GB的物理内存,额外的内存并没有被操作系统使用。不开启/3GB开关重启系统将使用所有的物理内存。

详细信息你可以参考下面的文章配置SQL Server 使用大于2GB的物理内存。

参考:
如何配置 SQL Server 以便使用 2 GB 以上的物理内存:http://support.microsoft.com/kb/274750/zh-cn
使用 AWE:http://msdn.microsoft.com/zh-cn/library/ms175581(v=SQL.90).aspx
Windows Server 2003 和 Windows 2000 提供大内存支持:http://support.microsoft.com/kb/283037

转载自:http://social.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/ca823db4-cee5-40de-8ffb-d27ef61548fd

聚划算