我有一个SQL Server实例,它的内存使用量逐渐增长,直到windows不再提供它。偶然的大查询结果会导致实例增长,这似乎是合乎逻辑的。
有什么方法可以说服Server释放它不需要的内存(除了重新启动服务)?
编辑:
我使用的是Server 2000 Server 8.00.2039 - SP4 (标准版)
我能够使用以下查询找到这个问题:
SELECT 'SQL Server '
+ CAST(SERVERPROPERTY('productversion') AS VARCHAR) + ' - '
+ CAST(SERVERPROPERTY('productlevel') AS VARCHAR) + ' ('
+ CAST(SERVERPROPERTY('edition') AS VARCHAR) + ')'发布于 2009-06-03 15:37:52
因此,总结一下答案:
没有办法提示memory释放它不需要的内存。SQL Server应在需要时自动释放内存,但不应在此之前释放。如果您有内存问题,您应该减少“最大服务器内存”内存optin的值。
发布于 2009-04-30 17:04:44
这正是Server应该如何工作的方式。
如果机器上有其他服务,并且不希望SQL占用所有可用内存,则需要设置最大服务器内存。请参阅MSDN上的服务器内存选项。
发布于 2009-05-06 14:49:07
其他的海报是正确的,这是由设计,但你绝对想限制最大内存的一点比你的服务器的RAM。想一想这一系列事件:
为了避免这种情况,请将最大服务器内存限制配置为实际物理内存的80-90%左右。关于SQL 2000的说明,请访问:http://msdn.microsoft.com/en-us/library/ms178067.aspx
https://serverfault.com/questions/1279
复制相似问题