SQL Server占用服务器内存过高
原理:
SQL Server对服务器内存的使用策略是能用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高。
这些内存一般都是Sql Server运行时候用作缓存的:
- 数据缓存:执行个查询语句,Sql Server会将相关的数据页(Sql Server操作的数据都是以页为单位的)加载到内存中来, 下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。
- 执行命令缓存:在执行存储过程,自定函数时,Sql Server需要先二进制编译再运行,编译后的结果也会缓存起来, 再次调用时就无需再次编译。
清除缓存的方法:
DBCC FREEPROCCACHE 清除存储过程相关的缓存
DBCC FREESESSIONCACHE 会话缓存
DBCC FREESYSTEMCACHE(‘All’) 系统缓存
DBCC DROPCLEANBUFFERS 所有缓存
这几个命令虽然会清掉现有缓存,为新的缓存腾地方,但是Sql server并不会因此释放掉已经占用的内存。要调整物理内存 强制释放内存。
调整物理内存方法:
服务器连接——>右键——>属性——>内存——>最大服务器内存
修改内存