MSSQL占用内存过大的解决方法
2008-01-14 20:56:55 来源:WEB开发网核心提示: 经常使用mssql(WINDOWS平台上强大的数据库平台)的朋友都会发现一个小小的网站在运行若干天后mssql(WINDOWS平台上强大的数据库平台)就会把服务器上所有的内存都吃光,此时你不得不重新启动一下服务器或mssql(WINDOWS平台上强大的数据库平台)来释放内存,有人认为是mssql(WINDOWS平台
经常使用mssql(WINDOWS平台上强大的数据库平台)的朋友都会发现一个小小的网站在运行若干天后mssql(WINDOWS平台上强大的数据库平台)就会把服务器上所有的内存都吃光,此时你不得不重新启动一下服务器或mssql(WINDOWS平台上强大的数据库平台)来释放内存,有人认为是mssql(WINDOWS平台上强大的数据库平台)有内存泄露问题,其实不然,微软给我们了明确说明:
在您启动 sql server(WINDOWS平台上强大的数据库平台) 之后,sql server(WINDOWS平台上强大的数据库平台) 内存使用量将会持续稳定上升,即使当服务器上活动很少时也不会下降。另外,任务管理器和性能监视器将显示计算机上可用的物理内存稳定下降,直到可用内存降到 4 至 10 MB 为止。
仅仅出现这种状态不表示内存泄漏。此行为是正常的,并且是 sql server(WINDOWS平台上强大的数据库平台) 缓冲池的预期行为。
默认情况下,sql server(WINDOWS平台上强大的数据库平台) 根据操作系统报告的物理内存加载动态增大和收缩其缓冲池(缓存)的大小。只要有足够的内存可用于防止内存页面交换(在 4 至 10 MB 之间),sql server(WINDOWS平台上强大的数据库平台) 缓冲池就会继续增大。像在与 sql server(WINDOWS平台上强大的数据库平台) 分配内存位于相同计算机上的其他进程一样,sql server(WINDOWS平台上强大的数据库平台) 缓冲区管理器将在需要的时候释放内存。sql server(WINDOWS平台上强大的数据库平台) 每秒可以释放和获取几兆字节的内存,从而使它可以快速适应内存分配变化。
更多信息
您可以通过服务器内存最小值和服务器内存最大值配置选项设置 sql server(WINDOWS平台上强大的数据库平台) 数据库引擎使用的内存(缓冲池)量的上下限。在设置服务器内存最小值和服务器内存最大值选项之前,请查阅以下 Microsoft 知识库文章中标题为'内存'一节中的参考信息:
319942 HOW TO:Determine Proper sql server(WINDOWS平台上强大的数据库平台) Configuration Settings(确定正确的 sql server(WINDOWS平台上强大的数据库平台) 配置设置)
请注意,服务器内存最大值选项只限制 sql server(WINDOWS平台上强大的数据库平台) 缓冲池的大小。服务器内存最大值选项不限制剩余的未保留内存区域,sql server(WINDOWS平台上强大的数据库平台) 准备将该区域分配给其他组件,例如扩展存储过程、COM 对象、以及非共享 DLL、EXE 和 MAPI 组件。由于前面的分配,sql server(WINDOWS平台上强大的数据库平台) 专用字节超过服务器内存最大值配置是很正常的。有关此未保留内存区域中分配的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
316749 PRB:在使用大量数据库时可能没有足够的虚拟内存
参考
sql server(WINDOWS平台上强大的数据库平台) 联机图书;主题:'服务器内存最小值和最大值的影响';'内存体系结构';'服务器内存选项';'sql server(WINDOWS平台上强大的数据库平台) 内存池'
下面我们就来实战如何限制mssql(WINDOWS平台上强大的数据库平台)内存使用:
第一步:打开企业管理双击进入要修改的mssql(WINDOWS平台上强大的数据库平台).
第二步:在左侧mssql(WINDOWS平台上强大的数据库平台)上点击右键,选择属性,弹出sql server(WINDOWS平台上强大的数据库平台)属性(配置)对话框
第三步:点击内存选项卡.
在这里,你会看到mssql(WINDOWS平台上强大的数据库平台)默认设置为使用最大内存,也就是你所有的内存,根据你的需要,设置它的最大值吧.
第五步:设置完毕,重mssql(WINDOWS平台上强大的数据库平台)服务,配置即可生效!
技术交流 永无止境
更多精彩
赞助商链接