我们正在编写一个基于ASP.Net / C ++的程序,这些程序可能会被许多公司访问(每个公司都有单独的登录和数据).我们正在考虑拥有多个sql server 2008数据库(同一个实例),每个数据库用于一个公司.但是,访问数据库的c#程序将是一样的,并将根据客户访问的数据库创建适当的连接字符串.
在出现任何性能下降之前,可以在sql server的单个实例中创建多少个这样的数据库:
>限制连接,因为每个连接(不确定是否将池被用于访问不同的数据库)是使用不同的连接字符串创建的.
>限制数据库的数量,是受硬件限制还是sql server 2008会在数据库数量增加到100时显示出恶化?
还有什么我可能会失踪?
谢谢你的时间
解决方法
>每个sql Server实例的Max数据库:32,767
>最大用户连接数:32,767
>最大用户连接数:32,767
(从这里:Maximum Capacity Specifications for SQL Server)
两者实际上受到sql Server机器的RAM数量的限制,很久之前它达到了这些最大值.
在这两个中,我怀疑如果您有数千个用户(因为您没有使用连接池),用户连接将会是更大的问题.
要查找sql Server机器的当前值:
SELECT @@MAX_CONNECTIONS AS 'Max Connections'
更新为回应海报的意见:这不是真正的问题的数据库的数量,但更多的是这些数据库中经常访问的页面的数量.如果所有的“热”页面都适合内存(很少有物理读取发生),那么一切都是好的.