当前位置: 代码迷 >> Sql Server >> SQL2008R2占用内存有关问题
  详细解决方案

SQL2008R2占用内存有关问题

热度:40   发布时间:2016-04-24 09:23:01.0
SQL2008R2占用内存问题
操作系统:win server2008 r2
内存:       4G
数据库:   sql 2008 r2

服务器只安装SQL2008R2,没有其它应用,使用一天,内存占用95%,而且没有应用程序连接数据库时,也不会释放内存。请问是什么原因?如何解决?谢谢!
------解决思路----------------------
引用:
按服务器4G内存计,定义SQL最大内存应该是多少?


1. 一般来说, DB服务器与Web服务器最好能分开, 这样两者之前不会互相产生大的影响;
2. 如果DB服务器是单独的, 那么不需要限制内存使用;
3. 如果DB服务器不是独立的, 那你要根据服务器上其它应用(如:Web, Windows服务等)的需要情况而定。
如果其它应用要求不高, 那么 sqlserver最高设置为3G吧。
------解决思路----------------------
SQLserver 就是有多少内存用多少的,不必担心。
如果觉得占用内存过多可以设置限制最大服务器内存 (max server memory),这只是buffer pool的内存。
------解决思路----------------------
SQL Server 2008 R2运行越久,占用内存会越来越大。
SQL Server进行优化查询、缓存很多东西,内存越占越大,是没有问题的,SQL SERVER就这么设计的。

解决办法
第一种:
 有了上边的分析结果,解决方法就简单了,定期重启下SQL Server 2008 R2数据库服务即可,使用任务计划定期执行下边批处理:

net stop sqlserveragent
net stop mssqlserver
net start mssqlserver
net start sqlserveragent

第二种:
进入Sql server 企业管理器(管理数据库和表的,这个都不知道就不用往下看了),在数据库服务器名称上点击【右键】,选择【属性】,然后,找到【内存】选项,在右边的【使用AWE分配内存】(sqlServer64的应该不用勾)左边把对勾打上。在最大服务器内存(MB)上填入适当的大小(具体填多大,肯定不能超过计算机的物理内存,当然,也可以在任务管理器中查一下,sqlserver.exe占有多大时,系统会变慢作为参考),记得是以M(兆)为单位,点确定,重启一下Sql服务器!OK!