在运行DB和IIS的VPS上,我应该限制SQL Server使用的RAM吗?

我有一个Windows 2008 R2的VPS与1 GB的RAM。 我正在使用VPS来运行SQL Server 2008 Express和IIS 7.5。 我注意到SQL Server倾向于使用尽可能多的内存,而不利于其他应用程序(这对于运行SQL Server的服务器来说是有意义的)。 我应该设定一个限制吗? 如果是这样,合理的水平是什么?

是的,SQL Server将在devise和默认情况下使用尽可能多的内存。 这真是一件好事 – 如果你有一个数据库服务器,你希望它尽可能快地执行。

当然,如果您还需要在同一个环境中运行其他应用程序,这会有点毛骨悚然……这总是一种折衷:您越限制SQL Server的内存占用量,数据库服务器就越困难它的工作。 我没有任何可以提供的事实和数字,但是对于SQL Server来说,1 GB的内存似乎并不算太​​多,实际上, 进一步限制下去肯定会影响性能 – 查询计划将无法长久保存在caching中,数据页面将不得不被更频繁地丢弃并重新从磁盘重新加载。

再次强调:没有硬编码或者一个神奇的公式来确定SQL Server真正需要做多less内存。 您基本上必须衡量您的性能 – 对于SQL Server和所有其他涉及的应用程序 – 然后根据您获得的性能数字作出决定。 逐渐减lessSQL Server的内存大小,看看它真的开始伤害到什么程度呢 – 在700M的时候可能会好起来,并且开始吸收到450M或者其他任何东西 – 真的没有确定性的方法来知道是什么。 调整,观察,测量,然后再调整 – 这就是你所能做的!

理想情况下,我会说得到更多的内存,并给所有除了1GB的SQL Server。

除此之外,我将开始把一半给SQL Server,看看更多的伤害,数据库或其他应用程序。

根据我的经验,它将立即使用250MB,之后是全部caching – 但是某种程度的caching对于性能的提升至关重要。

我的购物清单中更多的内存将会很高! 请记住,SQL Server Express将只使用1GB的RAM作为它的缓冲池(使用的总数可能会更多,但只有1GB的池)。 您可以通过右键单击服务器,select属性然后进入内存页面来限制从pipe理工作室直接使用的最大内存,该选项称为“最大服务器内存(MB)”。