16GB机器上的SQL Server 2005 64位只使用3.6GB内存

  • 最大服务器内存设置为最大值
  • AWE被禁用(无论如何不应该需要64位)
  • Windows Server 2008 Enterprise SP2
  • 这是一个使用VMWare的虚拟服务器

如果我看任务pipe理器sqlservr.exe进程只使用约3.6 GB的内存。 这个数字是不是真的? 它不应该尝试使用所有可用的内存吗?

如果我运行DBCC MEMORYSTATUS,我会得到:

VM Reserved 16670136 VM Committed 3640664 

它看起来像一个内存限制,我不应该在64位环境中看到..我怎么能得到SQL2005使用更多的内存?

不。如果你重新启动SQL服务器,服务器的内存将被返回给操作系统。设置的意思是一旦内存达到了SQL服务器消耗的12GB,SQL服务器将保留该内存。即使现在你不需要数据和事务是完整的,仍然内存将留在SQL服务器。所以一旦SQL服务器达到12 GB的消费,它将保留,直到您重新启动服务。

你有没有设置最低的服务器内存?

http://msdn.microsoft.com/en-us/library/ms178067.aspx

如果将最servlets器内存和最大服务器内存设置为相同的值,则SQL Server将为缓冲池分配该内存量(如果可用)。 当然,你并不想让SQL Server使用服务器上的所有内存 – 你至less需要为操作系统保留一些内存(数量取决于你是否在运行其他任何东西同一台机器)。

HTH。

您可以查看PerfMon中的目标服务器内存以查看SQL Server请求的内存量。 有点偏离主题,您可以比较总服务器内存和目标服务器内存,看看是否有内存限制。 当目标i大于总数时,您需要添加更多内存。