SQL Server 2k5内存消耗?

时间:2008-08-26 15:33:06

标签: sql-server performance

我有一个开发vm,它运行sql server以及我的堆栈的其他一些应用程序,我发现其他应用程序执行得很糟糕。在做了一些挖掘之后,SQL Server正在占用内存。在快速网络搜索之后,我发现默认情况下,它会消耗尽可能多的内存,以便缓存数据并将其返回给系统,就像其他应用程序请求它一样,但这个过程通常不会发生得足够快,显然我的情况是一个普遍的问题。

There however is a way to limit the memory SQL Server is allowed to have。我的问题是,我应该如何设置此限制。显然我需要做一些猜测和检查,但是有一个绝对最小的阈值吗?任何建议表示赞赏。

编辑:

我会注意到开发人员机器有2个内存,所以我希望能够在768 mb或更低的速度下运行vm。此vm将仅用于本地开发和测试,因此负载将非常小。在本地测试代码之后,它将转到SQL服务器专用的另一个环境。 我真正想要的是有关最低要求的建议

4 个答案:

答案 0 :(得分:2)

从SQL Server文档中提取:

  

最大服务器内存(以MB为单位)

     

指定最大内存量   SQL Server可以在启动时进行分配   而它运行时。这个配置   选项可以设置为特定值   如果你知道有多个   应用程序同时运行   作为SQL Server而你想要的   保证这些应用程序具有   足够的内存来运行。如果这些   其他应用程序,如Web或   电子邮件服务器,仅请求内存   需要,然后不要设置选项,   因为SQL Server会释放内存   根据需要给他们。的然而,   应用程序经常使用任何内存   在他们开始和做的时候可用   如果需要,不要求更多。如果是   在此行为的应用程序   方式在同一台计算机上运行   与SQL Server同时设置   保证该值的选项   应用程序所需的内存   不是由SQL Server分配的。

关于最低限度的建议是:没有这样的事情。内存越多越好。 SQL Sever需要尽可能多的内存,否则会丢弃IO。

停止SQL Server。运行您的其他应用程序并记下他们需要的内存量。从总可用RAM中减去该值,并将该数字用于SQL Server中的MAX内存设置。

答案 1 :(得分:1)

  

所以id就像能够运行vm一样   如果可能的话,为768 mb或更少。

这取决于您的数据和数据库的大小。但我通常喜欢给SQL服务器至少一个GB

答案 2 :(得分:1)

这实际上取决于机器上还有什么。让事情在典型负载下运行,并查看任务管理器以查看您对其他所有内容的需求。请尝试使用该号码。

对于生产机器,当然,最好将机器的控制权交给Sql Server(处理器 - >升级Sql Server优先级)并让它拥有它想要的所有RAM。

由于您正在使用虚拟机,也许您可​​以为Sql Server创建一个专用虚拟机,并在另一个虚拟机上运行其他所有虚拟机。

答案 3 :(得分:0)

由于这是一个开发环境,我同意Greg,只是使用反复试验。要完美地做到这一点并不是那么重要。

但如果你在VM中做了很多工作,为什么不给它至少一半的2GB呢?