问题现象:
数据库服务器内存居高不下,64G的内存,几乎被占用100%,结果差点把服务器给拖垮了。
分析:
SQL Server对服务器内存的使用策略是有多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高。
这些内存一般都是SQL Server运行时候用作缓存的:
1. 数据缓存:执行个查询语句,SQL Server会将相关的数据页(SQL Server操作的数据都是以页为单位的)加载到内存中来, 下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。
2.执行命令缓存:在执行存储过程,自定函数时,SQL Server需要先二进制编译再运行,编译后的结果也会缓存起来, 再次调用时就无需再次编译。
处理方法:
第一步、打开SQL Server Management Studio,在连接上右键 → 属性
第二步、内存选项卡,修改最大服务器内存的大小,如下图:
将最大服务器内存改成适当值,确定后内存就会被强制释放.
千万不要设置太小,不然可能导致服务启动不了或者程序无法连接,本人就遇到了,SQLSERVER 2012修改成了100M,无法连接 ,处理方法:http://www.xqblog.top/post/169.html