awe enabled 选项

下一版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。

在 SQL Server 中,利用地址窗口化扩展插件 (AWE) API,可以使可访问的物理内存量超出对配置的虚拟内存设置的限制。可使用的具体内存量取决于硬件配置和操作系统的支持能力。Microsoft Windows Server 2003 操作系统所支持的物理内存量有所增加。因此,AWE 可访问的物理内存量取决于使用的操作系统。

  • Windows Server 2003 Standard Edition 最多支持 4 GB 的物理内存。

  • Windows Server 2003 Enterprise Edition 最高支持 32 GB 的物理内存。

  • Windows Server 2003 Datacenter Edition 最高支持 64 GB 的物理内存。

注意注意

64 位操作系统上不需要 AWE,也不能在该系统上配置 AWE。

使用注意事项

启用 AWE 之前,请注意下列特定于操作系统的准则:

Windows 2000

  • 如果可用物理内存小于虚拟内存地址空间上设置的配置限制,将无法激活 AWE 映射内存。在这种情况下,无论 awe enabled 的设置如何,将动态分配内存,并且 SQL Server 将在非 AWE 模式下运行。

  • 如果可用物理内存大于可访问的虚拟内存,则可以激活 AWE 映射内存。在这种情况下,下列两种情况适用:

    • 如果可用物理内存大于 max server memory 选项的值,SQL Server 实例会锁定 max server memory 中指定的内存量。

    • 如果可用物理内存小于 max server memory 选项的值,或者尚未设置 max server memory 选项,则 SQL Server 实例将锁定所有可用内存(除去 128 MB)。

  • 直到 SQL Server 关闭,AWE 映射内存才释放。Microsoft 极力建议您每次启用 AWE 时,鉴于服务器中运行的其他应用程序的内存需要,为 max server memory 选项设置一个值。

Windows Server 2003

  • 在 Windows Server 2003 中,SQL Server 支持动态分配 AWE 映射内存。尽管设置了对已配置虚拟内存地址空间的限制,但是 AWE 允许访问超出该限制范围的可用物理内存,因而扩展了 32 位操作系统上运行的应用程序的功能。

  • 启动过程中,SQL Server 仅保留一小部分 AWE 映射内存。需要额外的 AWE 映射内存时,操作系统会动态地将其分配给 SQL Server。同样,如果需要更少的资源,SQL Server 会将 AWE 映射内存返还给操作系统,以供其他进程或应用程序使用。SQL Server 和操作系统之间的这种平衡受到 min server memory 和 max server memory 参数的限制。

  • 在 Windows Server 2003 中运行 SQL Server 时,无需重新启动 SQL Server 实例,SQL Server 即可响应 max server memorymin server memory 配置选项的更改。有关 min server memorymax server memory 的详细信息,请参阅服务器内存选项

  • 在 Windows Server 2003 中,如果服务器的物理内存小于虚拟内存地址空间上配置的限制,则该服务器支持动态 AWE 映射内存。在这种情况下使用 AWE 不会对性能产生影响,但添加的物理内存超过虚拟内存地址限制时,可以在不重新启动服务器的情况下使用此物理内存。

对于 Windows 2000 和 Windows Server 2003,无法将 AWE 内存换出到页面文件。因此,您应该通过确定在该计算机上使用的所有其他应用程序都启动后有多少内存可供使用,来确定为 SQL Server 实例分配多少内存才是妥当的。

使用系统监视器中的 SQL ServerTotal Server Memory (KB) 计数器可以确定在 AWE 模式下运行的 SQL Server 实例分配的内存量。配置 max server memory 选项可另外留出一些可用内存,以满足其他应用程序、Windows 2000 和 Windows Server 2003 的需要。有关详细信息,请参阅监视内存使用量

重要说明重要提示

使用 awe enabledmax server memory 会影响在多实例或群集环境中运行的其他应用程序或 SQL Server 的性能。有关使用 AWE 映射内存的详细信息,请参阅管理大型数据库的内存

启用 AWE

若要启用 AWE,请将 awe enabled 设置为 1。对于 Windows 2000,如果没有为 max server memory 指定值,SQL Server 会在启动过程中保留几乎所有的可用内存,只为其他应用程序留下 128 MB 或更少的物理内存。(如果未启用 AWE,为其他应用程序保留的物理内存量可由最大服务器内存控制。)对于 Windows Server 2003,由于 AWE 映射内存管理是动态的,因此在启动过程中,只分配总可用物理内存的一小部分。

如果已成功启用此选项,当 SQL Server 实例启动时,SQL Server 错误日志中将写入消息“Address Windowing Extensions enabled”。

注意注意

必须在启用 AWE 之前为 SQL Server 帐户授予 LOCK PAGE IN MEMORY 权限。有关详细信息,请参阅如何启用“锁定内存页”选项 (Windows)

awe enabled 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改该设置,则仅当 show advanced options 设置为 1 时才可以更改 awe enabled。必须重新启动 SQL Server 实例,AWE 才会生效。

示例

下面的示例说明如何启用 AWE 以及如何将 min server memory 配置为 1 GB,将 max server memory 配置为 6 GB:

首先,启用 AWE:

sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO

重新启动 SQL Server 后,SQL Server 错误日志中应显示以下消息:Address Windowing Extensions enabled。

然后,配置内存:

sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO

在上面针对 SQL Server 和 Windows Server 2003 的示例中,内存设置指示缓冲池动态管理 1 GB 和 6 GB 之间的 AWE 映射内存。(此动态 AWE 示例不适用于 SQL Server 2000。)如果其他应用程序需要额外的内存,SQL Server 会在不需要 AWE 映射内存时释放所分配的 AWE 映射内存。在此示例中,最多只能释放 1 GB(即最小服务器内存限制)的 AWE 映射内存。

请注意,将 min server memory 选项设置为 1 GB 不会自动强制 SQL Server 获取 1 GB 的内存。将基于当前数据库服务器负荷按需分配内存。

禁用 AWE

若要禁用 AWE,请将 awe enabled 设置为 0,并执行 RECONFIGURE 语句。默认情况下,AWE 内存是禁用的。SQL Server 错误日志记录 awe enabled 选项的变化。重新启动后,SQL Server 将在标准动态内存分配模式下运行,其可用内存受虚拟地址空间或物理内存的限制,以较小的值为准。