代码之家  ›  专栏  ›  技术社区  ›  shsteimer

SQL Server 2K5内存消耗?

  •  3
  • shsteimer  · 技术社区  · 16 年前

    我有一个正在运行SQL Server的开发虚拟机,以及我的堆栈中的一些其他应用程序,我发现其他应用程序的性能非常糟糕。在进行了一些挖掘之后,SQL Server正在占用内存。在一次快速的网络搜索之后,我发现在默认情况下,它会消耗尽可能多的内存,以便缓存数据并在其他应用程序请求时将其返回系统,但这个过程通常不会足够快,显然我的情况是一个常见的问题。

    There however is a way to limit the memory SQL Server is allowed to have .我的问题是,我应该如何设置这个限制。显然,我需要做一些猜测和检查,但有绝对最小阈值吗?欢迎提出任何建议。

    编辑:

    我会注意到,开发人员的机器有2千兆内存,所以我希望能够在768 MB或更小的内存上运行虚拟机(如果可能的话)。这个虚拟机将只用于本地开发和测试,因此负载将非常小。在本地测试代码之后,它将转到另一个专用于SQL Server框的环境。 我真正想找的是关于最低限度的建议

    4 回复  |  直到 16 年前
        1
  •  0
  •   Tundey    16 年前

    因为这是一个开发环境,所以我同意Greg的观点,只需使用trial和error。完全正确并不那么重要。

    但是,如果你在虚拟机中做了很多工作,为什么不给它至少一半的2GB呢?

        2
  •  2
  •   Ricardo C    16 年前

    从SQL Server文档中提取:

    最大服务器内存(MB)

    指定最大内存量 SQL Server可以在启动时进行分配 当它运行时。此配置 选项可以设置为特定值 如果你知道有多个 同时运行的应用程序 作为SQL Server,您希望 确保这些应用程序 足够的内存运行。如果这些 其他应用程序,如Web或 电子邮件服务器,请求内存仅作为 需要,然后不要设置选项, 因为SQL Server将释放内存 根据需要送给他们。 然而, 应用程序经常使用任何内存 在启动和执行时可用 如果需要,不要再要求更多。 如果一个 在此中的行为的应用程序 方式在同一台计算机上运行 与SQL Server同时,设置 选择一个保证 应用程序所需的内存 不是由SQL Server分配的。

    最低限度的建议是:不要这样。记忆越多越好。SQL服务器需要尽可能多的内存,否则会损坏IO。

    停止SQL Server。运行其他应用程序并记下它们需要的内存量。从总的可用RAM中减去这个数字,然后将这个数字用于SQL Server中的最大内存设置。

        3
  •  1
  •   SQLMenace    16 年前

    所以我希望能够在 768 MB或更小(如果可能)。

    这将取决于您的数据和数据库的大小。但我通常希望至少给SQL Server一个GB

        4
  •  1
  •   Eric Z Beard    16 年前

    这真的取决于机器上还发生了什么。让事情在一个典型的负载下运行,看看任务管理器,看看你需要什么来处理其他事情。试着从那个号码开始。

    当然,对于生产机器,最好将机器的控制权交给SQL Server(处理器--提高SQL Server优先级),让它拥有所需的所有RAM。

    因为您使用的是虚拟机,所以您可以为SQL Server创建一个专用的虚拟机,并在不同的虚拟机上运行其他所有操作。