SQL Server中的最小和最大内存使用量?

时间:2016-08-18 10:03:33

标签: sql-server performance memory windows-server-2012-r2

我一直在四处看看,但这些日子我的谷歌效果似乎不太好。我正在尝试查找有关SQL Server实例的最小和最大内存设置的更多信息。

如果打开SQL Server Management Studio,右键单击某个实例,然后转到左侧菜单中的“内存”选项卡,可以找到该实例的最大和最小内存。据我所知,这将SQL Server实例的内存使用量设置为最多(至少)如此多的内存使用。但是,这意味着什么?

假设我有一台装有8 GB内存的机器,我安装了SQL Server。我将实例设置为最小和最大内存为5 GB,因此理论上这应该意味着SQL总是使用5 GB的内存。我的问题围绕着最低限度的设定。如果没有应用程序连接到SQL Server实例并从数据库写入/读取数据,那么分配的5 GB肯定无法使用,可以吗?我的理解是,这个最小设置只是“如果你需要它,这个内存专用于SQL Server”。

假设应用程序连接到SQL Server数据库并需要2 GB内存。总内存使用量仍然是5 GB吗?我的猜测是肯定的,但我有同事说,这将是SQL Server实例的5 GB和应用程序使用SQL Server实例的额外2 GB。

如果有人提供了一些您可以指出的信息,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

  

假设我有一台装有8 GB内存的机器,我安装了SQL Server。我将实例设置为最小和最大内存为5 GB,因此理论上这应该意味着SQL总是使用5 GB的内存

SQLServer(记住它是一个EXE)将其内存限制限制在5GB以及许多组件,如

1.Buffer pool
2.plan cache ..

将尝试争夺可用的5GB内存。

现在剩下3GB,还有其他组件,如..

1.Os本身
2.链接服务器
3.扩展存储过程
3.第三方dll或插件
4.Database email
4.SSIS
5.SSRS

尝试争夺可用的3GB内存..

  

假设应用程序连接到SQL数据库并需要2 GB内存。总内存使用量是否仍为5 GB?

你的应用程序需要2GB的概念对我来说并不清楚,但是想象一下,这么多需要大量内存的查询并行运行,SQL会坚持其有限的配额,但其他组件会像缓冲池一样饿死,计划缓存...

了解effects of MIN and Max MemoryBuffer management以获得更多理解