【问题标题】:Practical limit for the number of databases in SQL Server?SQL Server 中数据库数量的实际限制?
【发布时间】:2010-09-18 05:40:48
【问题描述】:

在其中一个 stackoverflow 播客(我认为是第 18 期)中,Jeff 和 Joel 讨论了多租户数据库与单租户数据库。 Joel 提到“FogBugz on Demand”为每个客户架构使用一个数据库,我想知道是否有一个点超出了您需要多个数据库服务器来分配负载?

【问题讨论】:

  • 我们有超过 2,300 个,效果很好。
  • 我在dba.stackexchange.com 上发现了这个讨论似乎相关且非常有趣

标签: sql-server database-design architecture


【解决方案1】:

Joel 在另一个地方谈到了这个问题(抱歉,没有参考资料),并说在切换到 MS SQL 2005 之前,管理控制台(和后端)在连接超过 1000 或 2000 个数据库时遇到了问题。似乎 2005 年和可能 2008 年再次改善了这些数字。

至于所有性能问题始终取决于您的实际硬件和工作负载,只能通过本地基准测试/系统监控来明确回答。

【讨论】:

    【解决方案2】:

    此外,您可能需要考虑到 SQL Server 的连接数。在 500-1000 之后,它变得非常堵塞和缓慢。所以这也是一个限制。

    【讨论】:

      【解决方案3】:

      我认为这更多是数据库负载的问题。如上所述,如果没有负载,则为 32,767。在高负载下,它会下降,最终降至 1 或小于 1。

      【讨论】:

        【解决方案4】:

        我认为这主要取决于机器的内存限制。 SQL Server 喜欢在内存中保留尽可能多的缓存,并且随着您添加数据库,您会减少可用内存量。

        【讨论】:

          【解决方案5】:

          从技术上讲,SQL Server 中每个实例的数据库限制为 32,767,但我怀疑您是否可以使用具有 2,000 多个数据库的 SQL Server 实例,此时服务器可能没有响应。

          如果数据库全部自动关闭且未被使用,您可能拥有近 30,000 个数据库。您可以在此处找到有关容量限制的更多信息:

          Maximum Capacity Specifications for SQL Server

          【讨论】:

          • 我们有 2,300 个,它就像一个魅力,虽然我们从来没有超过 100 个打开。
          • 很抱歉对旧的讨论发表评论。在附加的链接中,它说“每个 SQL Server 实例的用户数据库,包括数据层应用程序 = 50”。似乎非常有限。我看错了吗?
          • 位于“下表指定了在 SQL Server 实用程序中测试的各种对象的最大大小和数量”下。标题。在“数据库引擎对象”下,“每个 SQL Server 实例的数据库”为 32,767。您正在查看的表表示使用 SQL Server 实用程序测试的内容,而不是它的最大限制
          • 在一篇旧帖子上也发表了评论,我们有 12,000 多个在 SQL Server 2014 标准中运行。效果很好,单个数据库的负载很轻。然而,有些工具很难处理如此数量的数据库(我们使用 SQL Multi-Script 来部署数据库更改,构建分发列表有点慢)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多