使用MSSQL的站长朋友一定会佩服MSSQL吃内存的能力。一个小网站,运行几天后,MSSQL会吃光服务器上的所有内存。这时候需要重启服务器或者MSSQL来释放内存。有人认为MSSQL存在内存泄漏问题。事实上,事实并非如此。微软给了我们一个明确的解释:
使用MSSQL的站长朋友一定会佩服MSSQL吃内存的能力。一个小网站,运行几天后,MSSQL会吃光服务器上的所有内存。这时候需要重启服务器或者MSSQL来释放内存。有人认为MSSQL存在内存泄漏问题。事实上,事实并非如此。微软给了我们明确的解释:
启动 SQL Server 后,SQL Server 内存使用量将继续稳步上升,即使服务器上几乎没有活动。此外,任务管理器和性能监视器将显示计算机上的可用物理内存稳步下降,直到可用内存降至 4 到 10 MB。
只是出现这种状态并不表示内存泄漏。此行为是正常的,是 SQL Server 缓冲池的预期行为。
默认情况下,SQL Server 根据操作系统报告的物理内存负载动态增加和收缩其缓冲池(缓存)的大小。只要有足够的可用内存来防止内存页面交换(在 4 到 10 MB 之间),SQL Server 缓冲池就会继续增长。与 SQL Server 分配内存的同一台计算机上的其他进程一样,SQL Server 缓冲区管理器将在需要时释放内存。 SQL Server 每秒可以释放和获取数兆字节的内存,使其能够快速适应内存分配的变化。
更多信息

可以通过服务器内存最小值和服务器内存最大值配置选项设置SQL Server引擎使用的内存量(缓冲池)的上下限。在设置最小服务器内存和最大服务器内存选项之前,请查看以下 Microsoft 知识库文章中标题为“内存”部分中的参考信息:
319942 HOW TO:确定正确的 SQL Server 配置设置(确定正确的 SQL Server 配置设置)
请注意,最大服务器内存选项仅限制 SQL Server 缓冲池的大小。最大服务器内存选项不限制剩余的未保留内存区域,SQL Server 已准备好将此区域分配给其他组件,例如扩展存储过程、COM 对象以及非共享 DLL、EXE 和 MAPI 组件。由于之前的分配,SQL Server 专用字节超过最大服务器内存配置是正常的。有关在此未保留内存区域中分配的其他信息,请单击下面的文章编号以查看 Microsoft 知识库中的相应文章:
316749 PRB:使用大量时可能虚拟内存不足
参考
SQL Server 联机丛书;主题:“最小和最大服务器内存的影响”; “内存架构”; “服务器内存选项”; “SQL Server 内存池”

来实战如何限制MSSQL内存使用:
第一步:打开企业管理,双击进入要修改的MSSQL。
第2步:右击左边的MSSQL,选择属性,弹出SQL Server属性(配置)对话框
第 3 步:点击内存标签。

这里,你会看到MSSQL默认设置为使用最大内存,也就是你所有的内存。根据您的需要,设置最大值。
第五步:设置完成后,关闭MSSQL服务并重启,配置才会生效!
免责声明:本文首发于php中文网。转载请注明出处。感谢您的尊重!如果您有任何问题,请联系我们
专题推荐:
上一篇:ORACLE常用的SQL语法和数据对象 下一篇:Weblogic8配置Oracle连接池
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-379036-1.html
好可怕