我们有一台8核,16GB RAM服务器,上面运行着SQL Server 2008。当我们对数百万行执行大型查询时,RAM使用率高达15.7GB,然后甚至文件浏览,打开excel等变得非常慢。
当另一个进程需要它时,或者我遇到另一个问题时,SQL Server是否真的会释放内存?我们没有在此服务器上运行任何其他主要程序。
我们为SQL Server设置了14GB的最大内存使用量。
感谢所有人的启发或解决问题的想法。
答案 0 :(得分:8)
是的。有关详细信息,请参阅SQLOS's memory manager: responding to memory pressure。但是,究竟意味着内存压力是什么?它取决于机器之间以及从OS版本到OS版本,请参阅Q & A: Does SQL Server always respond to memory pressure?。如果你想为应用程序保留更多内存(我甚至懒得问为什么你浏览文件并在专用于SQL Server的机器上使用Excel ......)那么你应该降低mas服务器内存,直到它足够你的娱乐。
答案 1 :(得分:0)
SQL服务器不释放内存。它占用了可以达到MaxMemory设置的所有内存,并且它会保留在那里。