【问题标题】:SQL Server 2008: N small databases VS 1 database with N schemasSQL Server 2008:N 个小型数据库 VS 1 个具有 N 个模式的数据库
【发布时间】:2010-12-05 08:17:18
【问题描述】:

我有一个数据库服务器,有几个主数据库和几十个小数据库。

这些小型数据库是一种中间/临时数据库,用于将各种来源的数据导入主数据库。数据导入是一项日常任务。它们在结构上都非常相似,因为这些数据导入的实现是相似的,所以基本上它们都有一个配置表,定义映射、转换等,以及包含导入结果的数据表。

前段时间只有少数几个,但现在我有超过 20 个,随着支持的数据馈送数量的增加,它们将进一步增长。

我刚刚将所有服务器环境迁移到 SQL Server 2008,现在有一些时间进行清理/重构,我正在考虑将所有数据导入数据库合并到一个数据库中,并使用 database schema 来把它们分开。

问题 0:对于所描述的情况还有其他想法吗?

问题 1:我应该从 separate database 更改为 separate schema 吗?

问题 2: !!!:在 database schema 实现中需要注意什么棘手的事情?


Edit-1:将问题 2 突出显示为当前最“未回答”的问题。

【问题讨论】:

    标签: sql sql-server database-design sql-server-2008 schema


    【解决方案1】:

    在您的例子中,我可能会将数据库合并为一个。我真的没有理由将它们分开,合并它们将减少支持备份等所需的工作量。如果您从数据源导入数据一次,然后不再使用暂存表,我可以看到建立单独的数据库来处理数据转换的原因。由于您持续使用这些表,我更愿意将它们放在一起,这样我只需去一个地方即可找到生产数据的完整端到端状态和数据加载状态。

    2008 也非常擅长处理数据库分区,如果 db 变得太大,或者出于安全原因您需要分离数据,您将受益于拥有单个 db 以及拥有多个较小数据库等优点。使用多个较小的 db,您将无法做到这一点。

    【讨论】:

      【解决方案2】:

      当我们迁移时,我们遇到了非常相似的情况,我最终将所有内容都移到了一个大型导入数据库中,就像您暗示的那样。但是,我们没有使用模式将它们分开。

      【讨论】:

      • 谢谢,我需要使用模式进行分隔,因为许多表/视图/sp 名称是相同的。你没有这个问题,是吗?
      【解决方案3】:

      因为数据库是参照完整性和备份的单位,如果您要引入大量数据进行暂存,而无需按相同的计划进行备份,则将其保存在单独的数据库中可能是最简单的.

      您可以使用具有多个文件组和不同备份的单个数据库,但这需要更多设计。

      这将取决于的基本因素是:恢复模式、备份目标、使用模式以及设计和维护文件组设计的工作量。

      【讨论】:

      • 好点。它们中的大多数都非常小,但很少有特殊的更重 - 无论如何将它们分开放置是有意义的。
      【解决方案4】:

      所有先前的答案都对我有用,尤其是您关于选择性组合数据库的评论 - 如果有些非常忙、非常大或处理敏感数据,您可能希望将它们分开,或单独分组。这将使配置备份/恢复和磁盘/驱动器分配变得更容易(给忙碌的人自己的一组心轴)。

      可能像大多数数据库开发人员一样,我几乎只处理 dbo 模式中的对象,但我最近对其他模式进行了一些工作。我遇到的主要问题是记住在引用任何数据库对象时始终指定架构。永远不要假设任何给定的连接都会引用您想要的架构中的对象 - 始终清晰准确!

      【讨论】:

      • 非常好的观点。我想如果我这样做,我会确保“dbo”是用户的默认架构(默认情况下),但是“dbo”架构没有数据库对象和/或用户没有太多权限。
      【解决方案5】:

      我会将您所有的导入临时表放在一个数据库中,与您的常规生产数据库分开,因为备份需求可能非常不同。该数据库还应该包含诸如 SSIS 包的配置管理、任何日志记录表、任何导入元数据表(我们跟踪导入的每次运行和运行状态以及关于导入的大量其他内容,例如文件名,正常文件大小等。对于研究问题和添加检查到处理非常方便。我们使用客户端的模式,然后使用与导入/导出过程相关的对象的附加模式(日志,元数据等等)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-24
        • 1970-01-01
        • 2011-01-22
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 2010-11-25
        • 2015-05-09
        相关资源
        最近更新 更多