asp.net - 如何处理连接到多个 SQL Server 数据库的 Web 应用程序?

标签 asp.net sql-server connection-pooling

我正在构建一个将使用 SQL Server 进行数据存储的 ASP.NET Web 应用程序。我正在继承一个现有的结构,我无法对其进行太多修改。使用此应用程序的人是已付费使用该应用程序的个人公司。每家公司大约有 5 或 10 人将使用该应用程序。大约有1000家公司。按照目前系统的结构方式,每家公司在 SQL Server 实例中都有自己独特的数据库。每个数据库的结构都是一样的。我不认为这是一个好的数据库设计,但我对此无能为力。还有其他应用程序访问了这个数据库,为所有这些应用程序重写数据库接口(interface)将是一项艰巨的任务。

所以我的问题是如何为新的网络应用程序设计架构。每个月的某些时候该网站会获得大量流量。我的感觉是该站点在这些时候表现不佳,因为我猜测当我们有来自不同公司的 500 人同时访问该站点时,他们每个人都会有自己独特的数据库连接,因为他们正在访问不同的 SQL Server 数据库连接字符串。 SQL Server 不会使用任何连接池。我的印象是,这很糟糕。

如果他们将客户数量增加一倍会怎样? SQL Server 可以处理多少个唯一的数据库连接?在这种情况下,我是否应该告诉客户,如果他们想保持可扩展性,他们必须重新设计这个?

谢谢,
科里

最佳答案

您不必为每个数据库创建单独的连接

我有一个在同一台服务器上使用多个数据库的应用程序。我在每个查询前加上“USE dbName;”

我什至在同一个调用中对两个单独的数据库运行查询。

至于调用存储过程,这是一个稍微不同的过程。既然你做不到

     Use myDB; spBlahBLah

相反,您必须明确更改连接对象中的数据库。在 .Net 中,它看起来像这样:
     myConnection.ChangeDatabase("otherDBName");

然后调用您的存储过程。

关于asp.net - 如何处理连接到多个 SQL Server 数据库的 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3875355/

相关文章:

c# - 基于变量动态访问 ASP.NET 控件...这可能吗?

c# - HttpRequest.ServerVariables ["http_user_agent"] 与 HttpRequest.UserAgent 之间的问题

c# - 林克 2 SQL : composite primary key

java - MySQL JDBC 连接池最大大小

java - Hibernate DB 连接池 c3p0 有问题

asp.net - 分层数据库选择/插入语句 (SQL Server)

asp.net - 使用 ASP.Net - VB.Net 重命名 APP_Data 文件夹中的 microsoft access 数据库

PHP、MSSql服务器连接超时

sql-server - 启用 SQL CLR 的目的和风险是什么?

PHP 和 mod_dbd