代码之家  ›  专栏  ›  技术社区  ›  van

SQL Server 2008:N个小型数据库VS 1个具有N个模式的数据库

  •  2
  • van  · 技术社区  · 16 年前

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

    不久前,只有少数几个小的,但现在我有20多个,随着支持的数据源数量的增加,其中20个会进一步增长。

    我刚刚将所有服务器环境迁移到SQL server 2008,现在有一些时间进行清理/重构,我想将所有数据导入数据库合并到一个数据库中,并使用 database schema

    问题0:

    问题1: 我该从a换吗 separate database 到一个 separate schema

    问题2: !!:任何需要小心的棘手事情 数据库模式 实施?


    5 回复  |  直到 16 年前
        1
  •  5
  •   kemiller2002    16 年前

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

        2
  •  3
  •   ajdams    16 年前

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

        3
  •  3
  •   Cade Roux    16 年前

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

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

        4
  •  2
  •   Philip Kelley    16 年前

    之前的所有答案都对我有效,特别是你关于有选择地组合数据库的评论——如果有些数据库非常繁忙、非常大或对流程敏感,你可能想把它们分开或分组。这将使配置备份/恢复和磁盘/驱动器分配变得更加容易(为繁忙的磁盘分配自己的主轴集)。

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

        5
  •  1
  •   HLGEM    16 年前

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