在 SQL 服务器中归档数据库表:相同的数据库还是不同的数据库?

Archiving DB tables in SQL Server: same DB or a different database?

我们的 DBA 团队正在为一些较大的数据库开发归档流程。对于将数据保存在同一个数据库还是不同的数据库中存在不同意见。

我做了一些研究并提出了以下几点。有最佳实践吗?一种方式比另一种方式更好。

选项 A:相同的数据库

选项 B:不同的数据库

绝对是选项 B(即单独的数据库)。事实上,根据所有存档数据的大小,您甚至可以考虑将其移动到完全不同的 SQL 服务器实例。

至于利弊,我不同意B选项中的一些:

  • 实际上,需要跨数据库的视图根本不是问题。
  • 拥有 2 个数据库而不是 1 个不是问题。
  • 使用单独的数据库,可以对存档数据进行不同的管理/索引等,因此 (+)。

最后,如果数据被认为 "non-transactional" 可以存档,那么它不应该在事务数据库中。您在关于 "Smaller maintenance window for operational DB" 的那一点中提到了这一点。目标是提高事务系统的性能和可管理性。