1)首先要明确MS SQL SERVER的内存管理机制,它与Oracle不同,如果没有设置最大内存使用限制,那么,sql server会一直去申请内存,直到内存快被占用殆尽,才会释放一点点。
SQL Server存储引擎本身是一个Windows下的进程,所以SQL Server使用内存和其它Windows进程一样,都需要向Windows申请内存。从Windows申请到内存之后,SQL Server使用内存粗略可以分为两部分:缓冲池内存(数据页和空闲页),非缓冲内存(线程,DLL,链接服务器等)。而缓冲池内存占据了SQL Server的大部分内存使用。缓冲池所占内存也就是图2最大最小内存所设置的,因此sqlservr.exe所占的内存有可能会大于实例属性中内存设置中所设置的最大内存。
还有一点是,SQL Server使用内存的特点是:有多少用多少,并且用了以后不释放(除非收到Windows内存压力的通知)
2)内存释放
参考
https://www.cnblogs.com/luluping/archive/2010/11/26/1888364.html
)=====================================(
通过Sql Server Management企业管理器进行动态控制。
连接到企业管理器之后打开Sql Server实例的属性面板,
找到内存设置,改变其中的最大服务器内存使用即可