使用 Windows 2000 上的 AWE 内存
Microsoft® SQL Server™ 2000 企业版使用 Microsoft Windows® 2000 地址窗口扩展 (AWE) API 支持超大量的地址空间。SQL Server 2000 企业版在 Windows 2000 Advanced Server 上可访问大约 8 GB 内存,在 Windows 2000 Data Center 上可访问大约 64 GB 的内存。标准 32 位地址最多可映射 4 GB 的内存。因此 32 位 Microsoft Windows NT® 4.0 和 Windows 2000 进程的标准地址空间限制到 4 GB。默认情况下,为操作系统留出 2 GB 的地址空间,且有 2 GB 可供应用程序使用。如果在 Windows NT 企业版或 Windows 2000 Advanced Server 的 Boot.ini 文件中指定 /3GB 开关,则操作系统只保留 1 GB 的地址空间,且应用程序最多可得到 3 GB 的地址空间。有关 /3GB 开关的更多信息,请参见 Windows NT 企业版或 Windows 2000 Advanced Server 帮助。AWE 是 Microsoft Win32® API 的内存管理功能的一组扩展,它允许应用程序寻到多于 4 GB 的内存,而通过标准 32 位寻址可获得的内存为 4 GB。AWE 允许应用程序获取物理内存并作为非换页内存,然后将非换页内存的视图动态映射到 32 位地址空间。虽然 32 位地址空间限制为 4 GB,但是非换页内存却可以远远大于 4 GB。这使大量占用内存的应用程序(如大型数据库系统)可以寻到比 32 位地址空间中支持的更多的内存。有关 AWE 的更多信息,请参见 Microsoft Web 站点上的 MSDN® 页。

解决方案 »

  1.   

    应用AWE来改善SQL Server的性能 
     
    【10/18/2004 9:21:55】 【Baya Pavliashvili】 【】 
     
     
      许多DBA都注意到SQL Server 2000企业版可以占用超过2 GB的存储空间,对大多数系统(不是全部)来说,专门分配给SQL Server更多的空间可以改善性能,如果系统的性能对你很重要,利用额外空间的优势是很好的做法。在Windows 2000 Advanced Server上运转的SQL Server可以用掉8 GB的空间,而在2000 Data Center Server上运转的SQL Server可以用掉64 GB的空间。  我经常看到DBA不知如何利用超过2 GB的存储空间的优势,允许SQL Server使用超过2 GB的存储空间的配置选项称为“AWE激活”-- AWE代表地址窗口扩展。要激活AWE,你需要执行sp_configure系统程序:
    EXEC sp_configure 'awe enabled', 1
    GO
    RECONFIGURE WITH OVERRIDE  但是如果你只是简单地开启这个选项再重起SQL Server,你可能完全所有所有能利用的存储空间。即便设定“AWE激活”后,任务管理器会显示SQL Server只使用了一小部分可利用的存储空间。多数人认为SQL Server 没有使用所有能利用的存储空间是因为不需要这样,这是不对的。如果你设置SQL Server使用AWE,你还是能在任务管理器看到少于2 GB存储空间的使用率。你可以在报错日志里看到如下信息:“因为锁定存储权利未被授与,不能使用地址窗口扩展”  为了充分利用超过2 GB的存储空间,你必须允许Windows帐号运行SQL Server服务来锁定存储页。你必须编辑本地安全策略来实现,你可以选择开始-->程序-->管理工具-->本地安全策略操作。在本地安全策略里你需要找到用户权限分配文件夹,双击存储策略里的锁定页面。  这将打开一个对话窗口,让你在用户列表中加入一个Windows帐号以锁定存储页面。一旦你把SQL Server服务帐号加到这个列表,你需要关闭并重起SQL Server服务。  记住“AWE激活”选项已被开启,启动后SQL Server使用分配给它的所有存储空间;即便你配置动态存储管理,SQL Server也不会等到它需要时才使用全部的空间。了解这点的话,如果你采用AWE,你应当总是设定SQL Server使用固定数量的存储空间。由于操作系统需要至少1 GB的存储空间来正常运行,在Windows 2000 Advanced Server上运转的SQL Server需要大约6 - 6.5GB的存储空间。如果你不是在一台专用的服务器上运行SQL Server,你可能希望为其它程序节省存储空间,那你可以设定SQL Server使用5GB或更少的存储空间。  注意AWE激活选项在少于3 GB的存储空间环境下没有效果----你不能欺骗SQL Server使用服务器所能提供的存储空间以外的资源。 
      

  2.   

    以上两位的回答都比较详细了,我补充一点,提醒注意:在 32位的 windows 2003 上,安装 sql2000+sp4 ,还必须要打上一个sql补丁 SQL2000-KB899761-v8.00.2040-x86x64-CHS.exe否则的话,就算开了 windows PAE 以及 sql AWE 开关, sql2000 最大只能用到 2G,
      

  3.   

    补充一点。
    虽然你指定了3G内存,如果负载没有达到使用这么多内存的必要,SQL引擎也不会很贪心地预先占用3G内存。
    我们有个8G内存的服务器,SQL启动之后只使用1G内存,等负载上去之后,就增加到7G左右。