我刚开始担任数据分析师的新办公室。这项工作需要将客户端系统从我们的dbase平台升级到新的RDBMS。实际的转换是由一些内部软件处理的,这对我来说是一个黑盒子,但在转换结束时,我的系统内存使用量最多可达16GB的15.3。我被告知要重新启动计算机,但似乎必须有更好的方法(希望这不涉及修复软件,因为这对我来说不合适)。
我在下面的链接中找到了问题,但运行DBCC DROPCLEANBUFFERS似乎不起作用。重新启动SQL实例可以正常工作但会中断实例上的所有数据库。还有另一种释放记忆的方法吗?
我们同时使用ssms2008r2和smss2012。
由于
答案 0 :(得分:1)
SQL Server将抓取并保留您拥有的所有内存。如果您不希望它使用15.3 GB的内存,则需要更改设置,使其仅获取X GB。
您可以通过右键单击对象资源管理器中的实例,单击“服务器属性”,然后更改“内存”选项卡下的“最大服务器内存”来执行此操作。对于操作系统来说,最好留出1到2 GB的空间,如果你在服务器上运行了其他任何东西,那就更好了(如果可能的话,你应该避免在服务器上运行其他东西)。
答案 1 :(得分:1)
设计SQL希望尽可能多地使用内存。如果您希望限制它,可以从服务器属性执行此操作,并限制它允许使用的GB数。
答案 2 :(得分:0)
DBCC DROPCLEANBUFFERS
清除缓冲池中的所有干净缓冲区。那对你没有用。
您需要了解SSMS不占用您的内存,sqlserver服务是。 SQL服务器将尽可能多地扩展它的内存占用。如果你有32GB并且你说它可以使用32GB,那么它将尽可能多地分配。
这是关于最大服务器内存的DBA堆栈交换的一篇很棒的文章:https://dba.stackexchange.com/questions/47431/why-is-sql-server-consuming-more-server-memory