【问题标题】:One web application or multiple web applications when using multiple databases?使用多个数据库时是一个 Web 应用程序还是多个 Web 应用程序?
【发布时间】:2015-04-03 21:42:52
【问题描述】:

我正在开发一个托管在 IIS 上的 ASP.NET MVC 4 Web 应用程序,它将在单个 SQL Server 2014 实例上使用多个数据库(每个数据库用于不同的公司)。该网络应用程序将用于分析和汇总大量业务数据。

在这种情况下,最佳做法是什么?如果只有一个 Web 应用程序和池与多个数据库一起使用,会不会出现性能问题?一个数据库可能有 1-20 个用户。

A 还是 B 哪个更好?

A) 1 个 Web 应用程序和 10 个数据库

B) 10 个 Web 应用程序和 10 个数据库

【问题讨论】:

  • 一个与另一个无关。从功能上讲,您的应用程序连接到一个数据库还是 1000 个数据库并不重要。性能仅受每个数据库的单独性能限制,而不是涉及多少个数据库。

标签: sql-server database web-applications web


【解决方案1】:

您的问题根本不属于 MVC

如果您有大量数据并且担心性能,那么您应该考虑如何在数据库级别存储和查询数据。您可能对这类问题感兴趣:

  1. 使用什么提供程序来查询数据? (纯 ADO.NET 或类似 Linq-to-SQL 或 EF 的 ORM)
  2. 我应该在一个 SQL Server 实例中拥有所有数据库,还是可以在 Web 服务器端使用链接服务器甚至联合数据?
  3. 我应该将我的数据库文件放在不同的硬盘上吗?

回答这些问题:

  1. ADO.NET 总是比 ORM 快,因为它们都使用 ADO.NET 作为其核心。但是将来维护 ADO.NET 查询会更加困难
  2. 链接服务器速度较慢,尤其是如果您将数据库放在不同的机器上(您将通过网络传输数据,如果数据量很大,则速度不快)
  3. 在性能方面,将数据库文件存储在不同的硬盘上会更好

我想现在你的问题的答案很明显了:)

创建一个网络应用程序。

【讨论】:

  • 感谢您的回答。我在服务器上使用 ADO.NET、一个 SQL Server 实例和 RAID 1 配置。我只是对如果数百名用户仅使用一个具有多个数据库的 Web 应用程序/池是否会导致 Web 应用程序过载感兴趣。
  • 这里没有问题。
  • 另外,如果进一步谈论您的问题,您不想创建数据仓库吗?我认为 MS SQL 中的 Analisys 服务可以为您提供帮助。也可以使用此工具更轻松地创建分析和统计报告。
  • 我正在使用 Highcharts Javascript API (highcharts.com) 在从服务器获取数据 (AJAX/JSON) 后在浏览器中显示统计信息。到目前为止,这种方法已经奏效。
  • 我知道它可以工作,但你应该明白,你操纵数据以在客户端(使用你的 js 库)上获取某种统计分析,你通过网络发送所有 db 数据。这可能成为您的应用程序中最紧张的地方,将来会出现性能问题。但当然,如何构建系统取决于您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多