32位服务器让MSSQL使用超过4G以上的内存

楼主
32位服务器让MSSQL使用超过4G以上的内存
[P][/P][P][/P][P][/P][P][/P][P][/P][P][/P][P]  1.只要拥有常用的查询中查询的数据×2的内存使用量,是很正常的。

  2.要使用超过2G内存的空间,需要打开PAE或3G开关
  打开方式:

  在boot.ini中添加
  [operating systems]
  multi(0)disk(0)rdisk(0)partition(2)/WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE然后回到mssql
  sp_configure 'show advanced options', 1
  
  RECONFIGURE
  GO
  sp_configure 'awe enabled', 1
  RECONFIGURE
  GO
  sp_configure 'max server memory', 6144
  RECONFIGURE
  GO
  
  
  from BOL
  
  awe enabled 选项
  在 Microsoft® SQL Server™ 2000 中,可以使用 Microsoft Windows® 2000 地址窗口扩展 (AWE) API 支持最多达 64 GB 的物理内存。可使用的具体内存量取决于硬件配置和操作系统支持能力。



  说明 该功能仅适用于 SQL Server 2000 企业版和开发版。


  启用 AWE
  若要启用 AWE,请将 awe enabled 设置为 1。除非指定了 max server memory 的值,否则 SQL Server 将保留几乎所有可用内存,只留下 128 MB 或更少。

  如果已成功启用该选项,则当 SQL Server 2000 实例启动时,SQL Server 错误日志中将出现"已启用地址窗口扩展"这条消息。

  awe enabled 是高级选项。如果正在使用 sp_configure 系统存储过程更改该设置,则只有当 show advanced options 设置为 1 时才能更改 awe enabled。必须重新启动 SQL Server 2000 实例才能使更改生效。

  禁用 AWE
  若要禁用 AWE,请将 awe enabled 设置为 0。该设置是默认值。将不使用 AWE API。SQL Server 2000 运行在标准动态内存分配模式下,而且物理内存限制为 3GB。

  使用注意事项
  在启用 AWE 之前,请考虑下列事项:

  当将 awe enabled 设置为 1 时,SQL Server 2000 实例不能动态管理地址空间的大小。当服务器启动时,SQL Server 将保留并锁定几乎所有的可用内存(如果已设置该选项,则 SQL Server 将保留并锁定 max server memory 的值)。强烈建议每次启用 AWE 时为 max server memory 选项设置一个值。否则其它应用程序或 SQL Server 2000 实例将在不足 128 MB 的物理内存下运行。


  如果全部可用内存少于 3 GB,则 SQL Server 2000 实例将在非 AWE 模式下启动,即使 awe enabled 已设置为 1。这种情况下不需要管理 AWE 内存,因为已自动使用动态内存分配。


  可以通过识别在计算机上使用的所有其它应用程序启动之后还有多少内存可用,来确定可安全分配给 SQL Server 2000 实例的内存量。

  使用 SQL Server 性能监视器"总的服务器内存 (KB)"计数器确定在 AWE 模式下运行的 SQL Server 实例所分配的内存量。配置 max server memory 选项留出一些额外的可用内存以备其它应用程序和 Windows 2000 的各种需要。有关更多信息,请参见监视内存的使用。



  重要 使用 awe enabled 选项和 max server memory 设置会对其它应用程序的性能或在多实例或群集环境中运行的 SQL Server 的性能造成负面影响。有关使用 AWE 内存的更多信息,请参见管理 AWE 内存。

  ===========================================================================使用系统监视器(Microsoft Windows NT® 4.0 中的性能监视器)检索有关 SQL Server 内存使用及可用内存的信息。任务管理器不为 AWE 提供准确的内存使用信息。因此,报告的 sqlservr.exe 所占用的内存量并不正确。若要获得正确的 SQL Server 内存使用情况,可使用"总的服务器内存 (KB)"性能计数器(该计数器可通过系统监视器激活),或从 sysperfinfo 中选择内存使用。有关更多信息,请参见监视内存的使用。(联机帮助)
  
  -=============================以下为nz.perfectaction补充
  nz.perfectaction:看了下,应该看这个:

  select *,cntr_value*1.0/(1024*1024) from master..sysperfinfo  where counter_name like '%total%memory%'查看:

  --查看awe是否开启: sp_configure 'awe enabled'--查看设置的最大内存: sp_configure 'max server memory'
  
  
  最近帮一个网友搞定了这个问题。

  不过很遗憾的是,在windows 2003 + sql server 2000下没有成功
  最后是升级到sql server 2005才最终成功,sql server 缓存数据量有了质的提升。

  配置过程:

  1、在boot.ini里加/pae参数
  2、在sql server 2005 里开启awe
  3、重启
  4、查看数据cache量
  select *,cntr_value*1.0/(1024*1024) from master..sysperfinfo  where counter_name like '%total%memory%'
  5、结束[/P][P][/P][P][/P][P][/P][P][/P][P][/P][P][/P]

电脑版 Page created in 0.0780 seconds with 4 queries.