sql server 2008中的最大数据库数

时间:2009-06-28 01:45:51

标签: c# sql-server database-connection

我们正在编写一个基于ASP.Net/C#的程序,可能会被许多公司访问(每个公司都有单独的登录和数据)。我们正在考虑为一个公司提供多个sql server 2008数据库(相同的实例)。但是,访问数据库的c#程序将是相同的,并将根据客户将访问的数据库创建适当的连接字符串。

在看到由于以下原因导致性能下降之前,可以在sql server的单个实例中创建多少个此类数据库:

  • 限制连接,因为每个连接(不确定它是否将用于访问不同的数据库)都是使用不同的连接字符串创建的。

  • 限制数据库的数量,是否受到硬件或sql server 2008的限制,当数据库数量增加到100时会显示降级?

我可能遗失的其他东西?

感谢您的时间

3 个答案:

答案 0 :(得分:13)

  • 每个SQL Server实例的最大数据库数: 32,767
  • 最大用户连接数: 32,767

(从这里:Maximum Capacity Specifications for SQL Server

两者实际上都受到SQL服务器机器所具有的RAM量的限制,早在达到这些最大值之前。

在这两者中,如果您有数千名用户(因为您没有使用连接池),我怀疑用户连接将成为更大的问题。

查找SQL Server计算机的当前值:

SELECT @@MAX_CONNECTIONS AS 'Max Connections'

更新了以回应海报的评论:
实际上并不是问题数据库的数量,而是这些数据库中频繁访问的页面的数量。如果所有“热门”页面都适合内存(并且发生的物理读取很少)那么一切都很好。

答案 1 :(得分:4)

您还应该记住,连接将通过连接字符串进行池化 - 在您的情况下,您将为每个客户数据库获得单独的池。如果每个客户的流量都很高,那可能并不坏,但如果您拥有很多不同数据库的流量,那么您将无法充分利用池。

答案 2 :(得分:2)

为多个客户端提供多个数据库很容易成为维护的噩梦。如果应用程序是相同的,我假设数据库设计也是一样的。

我们几年前做过类似的项目,但我们决定在同一个数据库中混合数据,然后开发一个强大的安全模型,以确保一个客户不会最终看到或修改另一个客户的数据。 / p>

我可以自豪地说这个项目是成功的,今天我们发言时正在保存100多个不同客户的数据并且表现完美。

拉​​吉