【发布时间】:2011-03-04 01:13:21
【问题描述】:
我们正在根据新架构设计现有产品的新版本。 它是一个内部 Web 应用程序,可能有 100 个并发用户(最大)这将在 SQL Server 2008 数据库上运行。
最近的讨论项目之一是我们是否应该有一个单一的数据库,出于性能原因将数据库拆分为 2 个独立的数据库。
数据库可以在 5 年内增长到 50-100GB。
我们是开发人员而不是 DBA,因此很高兴获得一些一般性指导。
[我知道答案并不简单,因为它取决于架构、归档策略、数据量等。]
选项 1 单一主数据库 [这是我的首选]。
计划是将所有表放在一个数据库中,如果需要跨多个磁盘,可能会使用文件组和分区来分隔数据。 [如果合适,使用模式]。这应该处理性能问题 其中一个问题是单个服务器实例仍将处理此数据,因此仍存在处理瓶颈。
对于报告,我们可以有一个单独的报告数据库,但这仍在讨论中。
选项 2 将数据库拆分为 2 个单独的数据库
DB1 - 客户、帐户、客户资源等
DB2 - 这将包含大量数据 [即车辆跟踪数据、金融交易表等]。
这些表通常包含大量数据。 [如果需要,它可以驻留在单独的服务器上]
该计划包括将主要数据保存在较小的数据库 [DB1] 中,并将 [主要] 只读事务类型数据保存在单独的数据库 [DB2] 中。 UI 将主要从 DB1 读取,因此响应速度更快。 [我知道此选项使执行参照完整性变得更加困难。]
考虑的要点 由于我们正处于设计阶段,我们至少可以正确使用索引来处理性能问题,这就是为什么选项 1 对我来说很有吸引力并且它更像是一种标准方法。 对于这两个选项,我们正在考虑实施一个归档数据库。
为这个冗长的问题道歉。总而言之,问题是 1 DB 还是 2?
提前致谢,
利亚姆
【问题讨论】:
-
感谢大家的全面回复。它真的很感激。因此,我们需要考虑一些进一步的因素,特别是要使用的硬件等。我的一般意见是坚持使用单个数据库上所有表的标准方法。
-
这两个数据库的表你要交叉连接吗?
标签: sql-server database performance architecture