0

我刚开始在一个新办公室担任数据分析师。这项工作需要将客户端系统从我们的 dbase 平台升级到我们的新 RDBMS。实际的转换是由一些内部软件处理的,这对我来说是一个黑匣子,但在转换结束时,我的系统内存使用量已达到 16GB 的 15.3 左右。我被告知只需重新启动计算机,但似乎必须有更好的方法(希望这不涉及修复软件,因为这超出了我的范围)。

我在下面的链接中找到了问题,但运行 DBCC DROPCLEANBUFFERS 似乎不起作用。重新启动 SQL 实例有效,但这会中断实例上的所有数据库。有没有其他方法可以释放内存?

SQL Server 清除内存

我们同时使用 ssms2008r2 和 smss2012。

谢谢

4

3 回答 3

1

SQL Server 将获取并保留您允许的所有内存。如果您不希望它使用 15.3 GB 内存,则需要更改设置,使其仅占用 X GB。

您可以通过右键单击对象资源管理器中的实例,单击服务器属性,然后更改内存选项卡下的最大服务器内存来执行此操作。通常为操作系统留出至少 1 - 2 GB 的空间是个好主意,如果服务器上运行了其他任何东西,则留出更多空间(如果可能,您应该避免在服务器上运行其他东西)。

于 2014-07-09T18:58:39.240 回答
1

SQL 按照设计希望使用尽可能多的内存。如果你想限制它,你可以从服务器属性中这样做,并限制它允许消耗多少 GB。

右键服务器,属性

于 2014-07-09T18:58:49.107 回答
0

DBCC DROPCLEANBUFFERS从缓冲池中清除所有干净的缓冲区。那不会帮助你。

您需要了解 SSMS 不会占用您的内存,而 sqlserver 服务会。SQL Server 将尽可能多地扩展它的内存占用。如果您有 32GB 并且您说它可以使用 32GB,那么它将尽可能多地分配。

这是一篇关于最大服务器内存的 DBA 堆栈交换的精彩文章:https ://dba.stackexchange.com/questions/47431/why-is-sql-server-sumption-more-server-memory

于 2014-07-09T18:58:59.777 回答