Microsoft SQL Server 2005 使用 Microsoft Windows 地址窗口化扩展插件 (AWE) API 支持超大物理内存。SQL Server 2005 在 Microsoft Windows 2000 Server 和 Microsoft Windows Server 2003 上最多可以访问 64 GB 内存。
注意:只有 SQL Server 2005 Enterprise Edition、Standard Edition 和 Developer Edition 支持 AWE,并且 AWE 只能应用于 32 位操作系统。SQL Server 2005 Analysis Services (SSAS) 不能利用 AWE 映射内存。如果可用物理内存小于用户模式虚拟地址空间,则无法启用 AWE。
标准的 32 位地址最多可映射 4 GB 内存。因此,32 位进程的标准地址空间限制为 4 GB。默认情况下,在 32 位 Microsoft Windows 操作系统中,将为操作系统保留 2 GB 空间,另外 2 GB 空间可由应用程序使用。如果在 Windows 2000 Advanced Server 的 Boot.ini 文件中指定了 /3gb 参数,则操作系统将仅保留 1 GB 的地址空间,应用程序最多可以访问 3 GB 的空间。
AWE 是 Windows 的内存管理功能的一组扩展,它使应用程序能够使用的内存量超过通过标准 32 位寻址可使用的 2-3 GB 内存。AWE 允许应用程序获取物理内存,然后将非分页内存的视图动态映射到 32 位地址空间。虽然 32 位地址空间限制为 4 GB,但是非分页内存却可以远远大于 4 GB。这使需要大量内存的应用程序(如大型数据库系统)能使用的内存量远远大于 32 位地址空间所支持的内存量。
1. AWE 允许在 32 位体系结构上分配超过 4 GB 的物理内存。只有当可用物理内存大于用户模式的虚拟地址空间时,才应该使用 AWE。
2. 若要使 32 位操作系统支持 4 GB 以上的物理内存,必须向 Boot.ini 文件添加 /pae 参数并重新启动计算机。
注意:在 Windows Server 2003 中,如果服务器使用热添加内存设备,则 PAE 将自动启用。在这种情况下,您不必在配置为使用热添加内存设备的系统中使用 /pae 参数。而在其他任何情况下,都必须在 Boot.ini 文件中使用 /pae 参数才能利用超过 4 GB 的内存。
3. 如果计算机上的可用物理内存超过 16 GB,操作系统就需要 2 GB 的虚拟地址空间供系统使用,因此只能支持 2 GB 的用户模式虚拟地址空间。为了使操作系统能够使用超过 16 GB 的内存,应确保 Boot.ini 文件中没有 /3gb 参数。如果存在该参数,操作系统就不能使用超过 16 GB 的物理内存。
注意:SQL Server 缓冲池可以充分利用 AWE 映射内存;但是只有数据库页才能动态映射(或取消映射)到 SQL Server 的虚拟地址空间,并充分利用通过 AWE 分配的内存。对于在虚拟地址空间中永久驻留更多的用户、线程、数据库、查询和其他对象,AWE 并没有直接的帮助。
4、使用AWE需要打开高级设置具体语句如下。
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
5、启用“锁定内存中的页”选项
在“开始”菜单上,单击“运行”,然后在“打开”框中键入 gpedit.msc。
将打开“组策略”对话框。
在“组策略”控制台上,展开“计算机配置”,再展开“Windows 设置”。
展开“安全设置”,再展开“本地策略”。
选择“用户权利指派”文件夹。
细节窗格中随即显示出策略。
在该窗格中,双击“锁定内存中的页”。
在“本地安全策略设置”对话框中,单击“添加”按钮。
在“选择用户或组”对话框中,添加有权运行 sqlservr.exe 的帐户。
6、需要重新启动操作系统和数据库服务。