SQL Server中数据库数量的实际限制?

时间:2021-03-09 22:18:47

In one of the * podcasts (#18 I think) Jeff and Joel were talking about multi vs single tenant databases. Joel mentioned that "FogBugz on Demand" used a database per customer architecture and I was wondering if there is a point beyond which you'll need to have multiple database servers to distribute the load?

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

6 个解决方案

#1


10  

Technically the limit of databases per instance in SQL Server is 32,767, but I doubt that you could use a SQL Server instance that has more than 2,000 databases, at that point the server would probably be not responsive.

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

You may be able to have close to 30,000 databases if they were all auto-closed and not being used. you can find more information about capacity limits here:

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

Maximum Capacity Specifications for SQL Server

SQL Server的最大容量规范

#2


4  

Joel has talked about this at another place (sorry, no reference handy) and said that before switching to MS SQL 2005 the management console (and the backend) had problems attaching more than 1000 or 2000 databases. It seems that 2005 and probably 2008 again improved on these numbers.

Joel已经在另一个地方讨论了这个问题(对不起,没有参考方便),并说在切换到MS SQL 2005之前,管理控制台(和后端)在连接超过1000或2000个数据库时遇到了问题。似乎2005年和2008年这些数字再次得到改善。

As for all performance questions are always dependent on your actual hardware and workload an can only definitely answered by local benchmarking/system monitoring.

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

#3


2  

I'd think mostly it depends on the memory limitations of the machine. SQL Server likes to keep as much cached in memory as possible, and as you add databases you reduce the amount of memory available.

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

#4


2  

In addition, you might want to consider the number of connections to a SQL Server. After 500-1000, it gets very cloggy and slow. So that is a limitation as well.

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

#5


1  

I think it is more a question of the load on the databases. As was said above, if there is no load then 32,767. With a high load then it comes down, eventually to 1 or less than 1.

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

#6


0  

remember crash recovery takes time. and instance start up times to walk thru each database, plus if they are all on the same set of disks that a lot of restores to do, if the disk ever dies.

记得崩溃恢复需要时间。并且实例启动时间来遍历每个数据库,如果它们都在同一组磁盘上,那么很多还原要执行的操作,如果磁盘死了。

#1


10  

Technically the limit of databases per instance in SQL Server is 32,767, but I doubt that you could use a SQL Server instance that has more than 2,000 databases, at that point the server would probably be not responsive.

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

You may be able to have close to 30,000 databases if they were all auto-closed and not being used. you can find more information about capacity limits here:

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

Maximum Capacity Specifications for SQL Server

SQL Server的最大容量规范

#2


4  

Joel has talked about this at another place (sorry, no reference handy) and said that before switching to MS SQL 2005 the management console (and the backend) had problems attaching more than 1000 or 2000 databases. It seems that 2005 and probably 2008 again improved on these numbers.

Joel已经在另一个地方讨论了这个问题(对不起,没有参考方便),并说在切换到MS SQL 2005之前,管理控制台(和后端)在连接超过1000或2000个数据库时遇到了问题。似乎2005年和2008年这些数字再次得到改善。

As for all performance questions are always dependent on your actual hardware and workload an can only definitely answered by local benchmarking/system monitoring.

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

#3


2  

I'd think mostly it depends on the memory limitations of the machine. SQL Server likes to keep as much cached in memory as possible, and as you add databases you reduce the amount of memory available.

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

#4


2  

In addition, you might want to consider the number of connections to a SQL Server. After 500-1000, it gets very cloggy and slow. So that is a limitation as well.

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

#5


1  

I think it is more a question of the load on the databases. As was said above, if there is no load then 32,767. With a high load then it comes down, eventually to 1 or less than 1.

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

#6


0  

remember crash recovery takes time. and instance start up times to walk thru each database, plus if they are all on the same set of disks that a lot of restores to do, if the disk ever dies.

记得崩溃恢复需要时间。并且实例启动时间来遍历每个数据库,如果它们都在同一组磁盘上,那么很多还原要执行的操作,如果磁盘死了。