MS SQL 内存使用异常

来源:互联网 发布:js获取data属性 编辑:程序博客网 时间:2024/05/17 17:15

问题描述:

 环境:主机 ;IBM 445 /4 棵 cpu/4G M

        OS = windows server

        MSSQL = Enterprise edition server +sp3

状况 :

     我的MSSQL 一停用,在操作系统的任务管理器中,内存使用状诚指示条一下就降到到接近0 ,当我一启动MSSQL 服务,任务管理器中的内存使用状态指示条一上到了70% 左右,再仔细看任务管理器中SQL 进程的内存使用大少才70 多M(70 多兆确认没有看错) ,而任务管理器中的可能最大内存是3.6G . 重启服务器也是一样的状况. 别外我的MSSQL 中有大约有建10 个DB.

问题:

  1. 为何任务管理器中的内存使用状态条与进程中现显的内存使用差异有那么大(2.5G /70M)?

   2. 这个状况真正的问题在什么地方?

 问题原因:

当启用了 SQL Server 的 AWE选项后,很有可能会出现这种现象,执行下面的代码,查看你的 SQL Server是否启动了 AWE选项,如果下面的代码显示的结果集中,列 run_value 的值显示为1 ,则表示启用了AWE 选项。

EXEC sp_configure 'show advanced options', 1

RECONFIGURE

GO

 EXEC sp_configure 'awe enabled'

GO

 关于启用了 AWE选项后,会出现这种故障,在 SQL Server联机丛书上可以找到原文说明:

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

 其他注意事项:

启动 AWE后选项后, SQL Server在启动的时候就会吃掉能吃掉所有的可用内存(这个可用内存指保留给系统外的内存,或者是 SQL Server 的最大内存限制中设置的内存量),因此,如果你的服务器不是专用的数据库服务器,请在启用AWE 选项前,配置好SQL Server 的最大内存限制

另外,如果你的内存低于 2G,则开启 AWE选项无效,能开启,但达不到效果

如果操作系统启用了/PAE 参数的话,SQL Server就必须手工启用AWE(这点和操作系统启用/3GB参数不同,SQL Server此时无须任何配置就可以使用访问3GB的功能),启动AWE后会在SQL Server日志中找到AWE已启用的信息。不过,诚如邹老大所说,一定要给SQL Server设定一个最大内存使用数,否则只要一启动SQL Server就会几乎吃掉所有内存,仅留下128MB或更少的可用内存空间。
--最大使用内存空间为3GB
  sp_configure 'max server memory', 3073

  RECONFIGURE

  GO
重新启动SQL Server即可生效。