背景:我有一个 SQL Server 实例在我们的一台虚拟机上运行,内存为 64 GB。目前最大限制为 60 GB,最小限制为 0 GB。SQL Server 是服务器上运行的唯一一个消耗大量内存的应用程序。
我最近推出了一项功能,该功能会向 SQL Server 发出重复的昂贵查询,每当有大量用户使用该功能时,内存使用量就会按预期增加。我还没有达到极限,但我很好奇当我们接近极限时会发生什么。
根据 MS 文档,我了解到 SQL Server 会根据需要动态处理内存以供使用,但我无法找到有关 SQL Server 动态释放内存的逻辑的任何信息。
问题:
- 它是否在达到指定限制之前就开始释放内存?还有什么触发内存释放?
- SQL Server 如何确定要释放哪些内存?它是否以 FIFO 方式释放内存?
我是否完全忽略了某些要点?