sql server 在32位机器上使用AWE访问4GB以上内存的方法
本文导语: SQL Server 使用 Microsoft Windows 地址窗口化扩展插件 (AWE) API 支持非常大的物理内存。 SQL Server 在 Microsoft Windows 2000 Server 和 Microsoft Windows Server 2003 上可以访问最高达 64 GB 的内存。 注意: 只有 SQL Server Enterprise Edition、Standard Edition ...
SQL Server 使用 Microsoft Windows 地址窗口化扩展插件 (AWE) API 支持非常大的物理内存。
SQL Server 在 Microsoft Windows 2000 Server 和 Microsoft Windows Server 2003 上可以访问最高达 64 GB 的内存。
注意:
只有 SQL Server Enterprise Edition、Standard Edition 和 Developer Edition 支持 AWE,并且 AWE 只适用于 32 位操作系统,64位操作系统不需要使用AWE。
Analysis Services 无法利用 AWE 映射内存。如果可用物理内存小于用户模式虚拟地址空间,则无法启用 AWE。
若要为 Microsoft SQL Server 启用地址窗口化扩展插件 (AWE),必须以已指定“锁定内存页”选项的 Microsoft Windows 帐户运行 SQL Server 数据库引擎,并使用 sp_configure 将 awe enabled 选项设置为 1。
标准的 32 位地址最多可映射 4 GB 内存。因此,32 位进程的标准地址空间限制为 4 GB。默认情况下,在 32 位 Microsoft Windows 操作系统中,将为操作系统保留 2 GB 空间,另外 2 GB 空间可由应用程序使用。如果在 Windows 2000 Advanced Server 的 Boot.ini 文件中指定了 /3gb 参数,则操作系统将仅保留 1 GB 的地址空间,应用程序最多可以访问 3 GB 的空间。有关 /3gb 参数的详细信息,请参阅进程地址空间。
AWE 是 Windows 的内存管理功能的一组扩展,它使应用程序能够使用的内存量超过通过标准 32 位寻址可使用的 2-3 GB 内存。AWE 允许应用程序获取物理内存,然后将非分页内存的视图动态映射到 32 位地址空间。虽然 32 位地址空间限制为 4 GB,但是非分页内存却可以远远大于 4 GB。这使需要大量内存的应用程序(如大型数据库系统)能使用的内存量远远大于 32 位地址空间所支持的内存量。
在操作系统上配置 AWE 之前,请考虑下列事项:
AWE 允许在 32 位体系结构上分配超过 4 GB 的物理内存。只有当可用物理内存大于用户模式的虚拟地址空间时,才应该使用 AWE。
若要使 32 位操作系统支持 4 GB 以上的物理内存,必须向 Boot.ini 文件添加 /pae 参数并重新启动计算机。有关详细信息,请参阅 Windows 文档。
注意:
在 Windows Server 2003 中,仅当服务器使用的是热添加内存设备时,PAE 才会自动启用。在这种情况下,您不必在配置为使用热添加内存设备的系统中使用 /pae 参数。而在其他任何情况下,都必须在 Boot.ini 文件中使用 /pae 参数才能利用超过 4 GB 的内存。
如果计算机上的可用物理内存超过 16 GB,操作系统就需要 2 GB 的虚拟地址空间供系统使用,因此只能支持 2 GB 的用户模式虚拟地址空间。为了使操作系统能够使用超过 16 GB 的内存,应确保 Boot.ini 文件中没有 /3gb 参数。如果存在该参数,操作系统就不能使用超过 16 GB 的物理内存。
注意:
SQL Server 缓冲池可以充分利用 AWE 映射内存;但是只有数据库页才能动态映射(或取消映射)到 SQL Server 的虚拟地址空间,并充分利用通过 AWE 分配的内存。对于在虚拟地址空间中永久驻留更多的用户、线程、数据库、查询和其他对象,AWE 并没有直接的帮助。