天下网吧 >> 网吧方案 >> 整体方案 >> 正文

改善SQL Server内存管理(SQL内存占用太大解决办法)

改善SQL Server内存管理(SQL内存占用太大解决办法)

最近,为了能在数据库服务器中运行其他应用程序,在保持数据库操作系统版本不变的前提下对数据库服

务器进行了软、硬件上的升级。在软件上,将操作系统从Windows 2000升级到Windows Server 2003;在

硬件上,将服务器中的内存由原来的512MB增加到1GB(1024MB)。
  在升级后的开始几个星期之内,服务器在使用中表现良好。但是不久后就发现,在服务器上同时运行

的其他应用程序却出现了异常,不时地报出内存分配不足的警告。经过几次跟踪后发现,原来是SQL

Server吞去了大部分内存所致。被SQL Server占用的内存由升级前的不到400MB一下子增加到现在的900MB

,并且有不断增长的趋势。

  通过查找原因才知道这是SQL Server 缓冲池的预期行为。默认情况下,在启动 SQL Server之后,

SQL Server会根据操作系统报告的物理内存数来动态增大或缩小高速缓冲存储器的容量。只要可用物理内

存大小保持在4MB到10MB之间,SQL Server 缓冲池就会继续增大(保留可用物理内存在4MB到10MB之间是

为了避免操作系统因为缺少内存而频繁地换页)。如果物理可用内存变得较少的时候,则SQL Server会将

一些内存释放给操作系统。

  为了使运行在服务器上的应用程序都能达到比较满意的效果,同时也为了能给其他应用程序分配足够

的内存,需要采取措施限制SQL Server 的内存使用量。我们可以通过设置SQL Server 数据库引擎使用的

内存的上下限来达到此目的。其具体步骤是:

  1.打开企业管理器,展开服务器组。

  2.单击该服务器,点击鼠标右键,单击属性菜单。

  3.在弹出的对话框中单击内存选项卡。

  内存设置方法有两种:

  1.设置min server memory和max server memory 在一个范围段内。

  比如,我们将它设置成最小0MB,最大255MB。这种方法在为一台服务器中运行多个应用程序分配内存

时非常有用。

  2.设置 min server memory 和 max server memory 为同一数值。

  比如,可以将它最大和最小值都设置成255MB。这样的设置方法与窗口中的另一个选项“使用固定的

内存大小" 相一致。

  虽然内存最小值和最大值设置是高级选项,但在设置完毕之后,最好还是先将SQL Server服务停止后

再重新运行,以便SQL Server能更好地对内存进行合理安排。

 


本文来源:天下网吧 作者:网吧方案

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下