使用多个数据库与使用单个数据库的优缺点

rdk*_*ine 17 sql-server-2008 database-design sql-server architecture

我在做一个需要使用 7 个数据库的新项目,认为性能、稳定性、优化更容易实现。

虽然我不同意,但我在收集使用单个数据库(将表拆分为逻辑域)的好参数时遇到了麻烦。

到目前为止,我的一个论点是数据完整性(我不能在数据库之间使用外键)。

使用单个或多个数据库的优点/缺点是什么?

[到目前为止的总结]

针对多个数据库的参数:

  • 丢失数据完整性(不能在数据库上使用外键)

  • 丢失恢复完整性

  • 获得复杂性(数据库用户/角色)

  • 小概率服务器/数据库将关闭

解决方案:

  • 使用模式来分隔域。

  • POC:使用虚拟数据来证明 7/1 db 的执行计划中的要点

gbn*_*gbn 19

性能、稳定性、优化都不是真的。有没有人有可靠的论点或参考文章为什么这些是真的?

资源未分配给数据库:SQL Server 实例平衡资源,因此没有区别

你输了:

  • 数据的完整性
  • 恢复完整性(DB7 中的数据将在 DB1 之后)

你获得了复杂性:

  • 安全性(用户、角色等)必须在所有数据库中
  • 您将有一些数据不能很好地放入 1 个数据库中

选项:

  • 可以使用文件组将数据库拆分到单独的磁盘上
  • 使用模式在逻辑上分离数据(基于其他答案)

  • 就像 OP 没有性能、稳定性和优化点的来源一样,您也没有提供其他证明。 (5认同)

小智 7

如果您在按逻辑域拆分数据之后,您可以随时查看在 SQL2008 中使用模式(远离 dbo 的默认值。)但即使这样也很痛苦,并且可能导致 OR/Ms 出现问题,而这些问题并不期待非-标准模式。

我一直在整理来自多个数据库的数据,这很痛苦,而且离高性能还很远。您最终会缓存数据或至少使用技巧来保持速度。

作为测试,构建 7 个虚拟数据库。构建一个查询,它需要同时来自所有 7 个或至少很多个的数据。

然后比较执行计划!我想你会在那里赢得你的案子。


nvo*_*gel 6

创建单独的数据库的充分理由是支持不同的可用性要求或简化管理。例如,如果您的数据库需要非常不同的备份计划或不同的恢复模型。另一个原因是您是否想在不同的实例上运行它们。

多个数据库没有可用的性能优化,而您也无法使用一个数据库实现这些优化。您能否详细说明“性能、稳定性、优化”的含义?