#1 楼
SQL Server将消耗尽可能多的内存。默认情况下,该数字将包含计算机上100%的数字内存。这就是为什么您看到自己所看到的。如果为SQL Server提供24 GB的内存,则SQL Server将尽力使用24 GB的内存。然后,您需要SQL Server和OS来争夺资源,这总是会导致性能下降。设置
max server memory
配置限制时,将限制SQL Server可以为缓冲区分配的数量。池(实际上是存储数据页和过程高速缓存的位置)。 SQL Server中还有其他内存职员,因此对于您的特定版本(2008 R2及更低版本),max server memory
仅控制缓冲池。但这始终将是最大的内存消耗者。最小和最大服务器内存影响的TechNet参考
最小服务器内存和最大服务器内存配置选项确定Microsoft SQL Server数据库引擎的缓冲池使用的内存量的上限和下限。
关于我应该为OS保留多少内存的问题,这是一个经常争论的指标。实际上,这完全取决于服务器上正在运行的其他进程。如果它是一台真正的专用服务器(几乎从来没有这样)。我希望看到该操作系统至少有4 GB的内存(在大型硬件盒上甚至更多)。但最重要的是,监视有多少未使用的内存。放心一点,如果注意到很多可用(可以通过perfmon进行监视)和未使用的内存(当然,对于那些极端的情况总是要留一点缓冲区),请给SQL Server更多的内存。
#2 楼
默认情况下,SQL Server设计为使用服务器上的所有内存。原因是SQL Server将数据缓存在RAM中的数据库中,以便它比每次用户需要时都需要从磁盘读取数据的访问速度更快。如果每次SQL Server在磁盘上需要相同的数据时都需要访问磁盘,那么IO需求会非常高。通常我建议人们为Windows留出大约4 Gig的RAM,但这实际上取决于服务器上运行的软件数量,正在使用的SQL Server组件(并非所有组件都遵循该设置)等。
#3 楼
这可以立即生效,无需重新启动SQL:服务器内存服务器配置选项
使用两个服务器内存选项(最小服务器内存和最大服务器内存)重新配置数量SQL Server内存管理器为SQL Server实例管理的内存(以兆字节为单位)。默认情况下,SQL Server可以根据可用的系统资源动态更改其内存要求。
配置固定数量的内存的过程
设置固定数量的内存:
在“对象资源管理器”中,右键单击服务器,然后选择“属性”。
单击“内存”节点。
在“服务器内存选项”下,输入所需的“最小服务器内存”和“最大”数量服务器内存。
使用默认设置允许SQL Server根据可用的系统资源动态更改其内存要求。最小服务器内存的默认设置为0,最大服务器内存的默认设置为2147483647兆字节(MB)。
希望对您有所帮助!
#4 楼
正如Eric所说的,您必须管理内存以便为其他进程保留可用空间。有关如何设置最大内存的一般说明和一些指导,请查看Jonathan Kehayias的文章:http://www.sqlskills.com/blogs/jonathan/how-much-memory- dos-my-sql-server-actually-need /
您可以考虑服务器使用情况来修改建议。
评论
您如何确定SQL Server对RAM的使用是任何瓶颈的根源?慢什么?如果有的话,如果SQL Server使用尽可能多的RAM(甚至比您期望或希望的更多),它应该会更有效率。而且,如果服务器上还有其他应用程序由于SQL Server正在使用内存(如设计那样)而受苦,请将它们移至另一台服务器。我在这里使用过此方法lucidica.com/help/got-sql-eating-up-ram让我知道是否有帮助:)亲切的问候,尼基塔。