SQL Server和RAM

时间:2010-12-15 14:06:06

标签: sql sql-server-2008

我在我的在线服务器上使用SQL Server 2008企业,主数据库有每月超过200万条记录的表,因为这些表增长SQL Server从安装的4GB内存中占用了大量资源然后关闭了服务器RAM。

我已经将SQL Server RAM限制为2GB,但是当它使用这些ram时,它会停止正常工作,破坏连接并且执行速度太慢。

这是正常的吗?在查询这些大表后,如何从SQL Server中恢复RAM?

4 个答案:

答案 0 :(得分:5)

在运行SQL Server的专用Windows服务器上,某些计数器将降至5-15 MB可用RAM。这是正常的。没有内存泄漏。

如果您安装了4GB RAM,我会考虑在32位上使用/ 3GB开关,并让SQL Server为自己设置RAM。对于64位,添加更多RAM并再次让SQL Server为自己设计RAM。

RAM的饥饿SQL Server将导致磁盘颠簸,因为数据是通过内存进行搅拌的。

如果您的SQL Server不在专用的盒子上,那么将其移到一个。

其他SO问题的链接:OneTwoThree

答案 1 :(得分:3)

见这里:The SQL Server Memory Leak Confusion

基本上SQL Server将使用尽可能多的内存,从磁盘读取比从RAM读取要昂贵得多。要释放RAM,您可以重新启动,但是再次所有查询都会很慢,因为它会点击磁盘

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您可能希望 SQL服务器使用大量RAM。它被设计为使用尽可能多的内存,因为您可以在内存中缓存结果和表,以便将来访问速度更快(如您所述)。

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

Read here了解更多信息。