使用MSSQL的站长朋友都会对MSSQL数据库的吃内存能力印象深刻。一个小网站运行几天后,MSSQL就会吃掉服务器上的所有内存。这时候就得重启服务器了。或者MSSQL来释放内存。有些人认为MSSQL存在内存泄漏问题。事实上,微软已经给了我们一个明确的解释:
启动SQLServer后,即使服务器上没有什么活动,SQLServer的内存使用量也会持续稳定上升。此外,任务管理器和性能监视器会显示计算机上的可用物理内存不断减少,直到可用内存降至MB
仅出现这种状态并不表示存在内存泄漏。此行为是SQLServer缓冲池的正常且预期的行为
默认情况下,SQLServer根据操作系统报告的物理内存负载动态增大和缩小其缓冲池(缓存)的大小,如下所示只要有足够的内存可用,以防止内存占用SQLServer缓冲池将随着页面交换而不断增长(范围为MB到MB)。SQLServer缓冲区管理器将在需要时释放内存,就像SQLServer分配内存的同一台计算机上的其他进程一样。SQLServer每秒可以释放和获取内存。几兆内存,以便能够快速适应内存分配变化
更多信息
可以指定服务器内存最小值和服务器内存最大值配置选项设置SQLServer数据库引擎使用的内存量(缓冲池)的上限和下限。在设置“服务器内存最小值”和“服务器内存最大值”选项之前,请查看以下Microsoft知识库文章中标题为“内存”的部分中的参考信息。
HOWTODetermineProperSQLServerConfigurationSettings(确定正确的SQLServer配置设置)
请注意,服务器内存最大选项仅限制SQLServer缓冲池的大小。服务器内存最大选项不限制剩余的未保留内存区域。SQLServer正准备将此区域分配给其他组件,例如扩展存储过程对象以及非共享DLLEXE和MAPI组件。由于之前的分配,SQLServer专用字节超过服务器内存最大配置是正常的。有关此未保留内存区域中分配的其他信息请单击下面的文章编号,查看Microsoft知识库中的相应文章
使用大量数据库时,PRB可能没有足够的虚拟内存
参考
SQLServer在线书籍;主题“服务器内存最小值和最大值的影响”;《内存架构》;“服务器内存选项”;《SQLServer内存池》
接下来我们来学习如何限制MSSQL内存使用:
第一步:打开企业管理,双击进入要修改的MSSQL
>第2步:右键单击左侧的MSSQL,选择“属性”,弹出“SQLServer属性(配置)”对话框
第3步:单击“内存”选项卡
这里你会看到MSSQL默认设置为使用最大内存,也就是你的全部内存。根据您的需要设置其最大值。吧
lixixinzhi/Article/program/MySQL/201311/29533上一篇:内存型数据库
下一篇:数据库内存占用高怎么释放