首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Server回收内存

从Server回收内存
EN

Server Fault用户
提问于 2009-04-30 16:59:25
回答 7查看 12.8K关注 0票数 10

我有一个SQL Server实例,它的内存使用量逐渐增长,直到windows不再提供它。偶然的大查询结果会导致实例增长,这似乎是合乎逻辑的。

有什么方法可以说服Server释放它不需要的内存(除了重新启动服务)?

编辑:

我使用的是Server 2000 Server 8.00.2039 - SP4 (标准版)

我能够使用以下查询找到这个问题:

代码语言:javascript
复制
SELECT 'SQL Server ' 
    + CAST(SERVERPROPERTY('productversion') AS VARCHAR) + ' - ' 
    + CAST(SERVERPROPERTY('productlevel') AS VARCHAR) + ' (' 
    + CAST(SERVERPROPERTY('edition') AS VARCHAR) + ')'
EN

回答 7

Server Fault用户

回答已采纳

发布于 2009-06-03 15:37:52

因此,总结一下答案:

没有办法提示memory释放它不需要的内存。SQL Server应在需要时自动释放内存,但不应在此之前释放。如果您有内存问题,您应该减少“最大服务器内存”内存optin的值。

票数 4
EN

Server Fault用户

发布于 2009-04-30 17:04:44

这正是Server应该如何工作的方式。

如果机器上有其他服务,并且不希望SQL占用所有可用内存,则需要设置最大服务器内存。请参阅MSDN上的服务器内存选项

票数 19
EN

Server Fault用户

发布于 2009-05-06 14:49:07

其他的海报是正确的,这是由设计,但你绝对想限制最大内存的一点比你的服务器的RAM。想一想这一系列事件:

  • SQL 2000运行愉快,占用了服务器的所有RAM
  • 有人加入RDPs,或者你必须拔出IE来下载补丁,或者你的备份开始了,不管是什么。
  • SQL必须释放足够的内存,以便操作系统工作。
  • 性能差,因为它释放内存和分页到磁盘
  • 一旦事情稳定下来,一切就会好起来
  • 另一个操作完成,SQL逐渐恢复释放的RAM。
  • 重复

为了避免这种情况,请将最大服务器内存限制配置为实际物理内存的80-90%左右。关于SQL 2000的说明,请访问:http://msdn.microsoft.com/en-us/library/ms178067.aspx

票数 8
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档