我在本地计算机上安装了 SQL Server 沙箱。我已将 SQL Server 实例可以使用的内存设置为 1000 mb。运行密集操作时,内存使用量会上升到 1000 mb。当操作结束时,SQL Server 仍然持有内存。如何释放这个内存预留?
我在本地计算机上安装了 SQL Server 沙箱。我已将 SQL Server 实例可以使用的内存设置为 1000 mb。运行密集操作时,内存使用量会上升到 1000 mb。当操作结束时,SQL Server 仍然持有内存。如何释放这个内存预留?
停止/启动服务,没有其他东西会将内存释放回操作系统。
显然这不是您想要对操作服务器执行的操作,但对于本地沙箱来说却是完全合理的。在我的笔记本电脑上有 3 个不同的实例,这是唯一可行的方法。
按照@Nick 的评论进行编辑。
你对“不需要”的定义是什么?一旦缓冲池被填满,它就不会丢弃页面,直到它们被引入的其他页面不受欢迎。如果你想立即恢复内存,就像@jrara的情况一样,你必须停止/开始。
将释放池。
https://msdn.microsoft.com/en-us/library/ms178529.aspx
评论
执行 DBCC FREESYSTEMCACHE 会清除 SQL Server 实例的计划缓存。清除计划缓存会导致重新编译所有后续执行计划,并可能导致查询性能突然暂时下降。对于计划缓存中每个已清除的缓存存储,SQL Server 错误日志将包含以下信息性消息:“SQL Server 遇到了 %d 次缓存存储刷新,用于 '%s' 缓存存储(计划缓存的一部分),原因是'DBCC FREEPROCCACHE' 或 'DBCC FREESYSTEMCACHE' 操作。” 只要在该时间间隔内刷新缓存,就会每五分钟记录一次此消息。
当其他应用程序尝试提交它时,它会自动放弃它没有使用的内存。