0

我在具有16 GB RAM的新服务器中使用SQL Server 2012。 我有一个长期运行的存储过程在一个50 GB的数据库和大约250万记录在输入表。该过程读取一个表(输入表)并对行进行规范化(大多数列具有文本值而不是ID),将规范化行插入到另一个表中。 什么问题? SQL Server服务的内存消耗尽可能增加。我必须设置一个上限以避免冻结服务器。 这是正常的吗?我知道SQL Server维护内存中的数据,而不是释放内存,以避免将来再次加载内存,但在我的情况下,我将来不需要它,因为这只是一个读取数据,对其进行规范化的过程,将它移动到另一个表格。SQL Server 2012中长时间运行的存储过程中的内存消耗

+0

删除“谢谢”。请参阅“是否应将'嗨','谢谢',标语和敬意从帖子中删除?” http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts – 2014-10-08 01:07:22

+0

我刚刚删除它。感谢您的建议。 – 2014-10-08 15:02:27

回答

2

你所描述的是绝对正常的。 SQL Server在内存中缓存尽可能多的数据,因为它可以加快执行时间。一次访问RAM比访问硬盘要快得多。没有限制,即使操作系统必须将所有内容分页到磁盘,它也会将所有内容填充到内存中。这会使您的服务器变慢。

当SQL Server达到其内存限制时,它将决定要保留什么以及要清除哪些内容以为新数据腾出空间。不要试图微观管理它。

相关问题