2010-12-15 68 views
0

我在我的在线服务器上使用SQL Server 2008企业版,主数据库的表格期望每月超过200万条记录,因为这些表增长SQL Server从安装的4GB内存中花费很多,然后关闭服务器RAM。SQL Server和RAM

我已经将SQL Server内存限制为2GB,但是当它使用这些内存时,它会停止运行并破坏连接并执行得太慢。

这是正常的吗?查询这些大型表后,我能做些什么来从SQL Server中取回RAM?

回答

5

在运行SQL Server的专用Windows服务器上,通过某些计数器可以下载到5-15 MB的可用RAM。这是正常的。没有内存泄漏。

如果你安装了4GB内存,我会考虑在32位上使用/ 3GB开关,并让SQL Server为自己开发内存。对于64位,添加更多的RAM并再次让SQL Server为自己制定RAM。

随着数据在内存中搅动,RAM会导致SQL服务器饿死。

如果您的SQL Server不在专用的盒子上,然后将它移动到一个。

什锦链接到其他SO问题:OneTwoThree

+0

谢谢,我使用64位Windows Server 2008时,我离开SQL服务器来管理内存管理一段时间后,在同一台服务器上的托管网站运行缓慢的SQL服务器变得太慢,有时一些查询无法执行我不知道为什么?当我看到它的内存变得很低!这是正常的 – Hadad 2010-12-15 14:56:19

+1

@Hadad,你不应该在与数据库相同的服务器上托管Web应用程序。 – HLGEM 2010-12-15 15:09:31

+0

非常感谢我将sql服务器分离到另一台机器上 – Hadad 2010-12-15 15:21:46

1

您需要让Sql Server处理内存。它会尝试并使用任何你给它的东西,因为它加载到内存中与它的执行速度直接相关。不要担心限制它。它将在系统需要时将内存回送给系统上的其他进程,并在这些进程完成时回收它。

3

在这里看到:因为它可以尽可能抢,这是更昂贵的从磁盘读取比从RAM The SQL Server Memory Leak Confusion

基本上SQL Server将使用尽可能多的内存。要释放内存,您可以重新启动,但后来您的所有查询都会很慢,因为它会撞到磁盘

+0

+1的链接 - 谢谢! – 2011-11-08 12:42:42

1

您可能要想要 SQL Server要使用大量的RAM。它旨在使用尽可能多的内存,因为您可以在内存中缓存结果和表,以便将来访问速度更快(如您所述)。

如果你的SQL服务器内存不足,它会自动“老化”查询和缓存,以便最旧的内存将被删除。

Read here了解更多信息。