sql-server - SQL Server 中的完整数据库版本控制

标签 sql-server sql-server-2008 versioning database-versioning

首先,让我指出,我阅读了所有有关数据库版本控制的帖子,但这并不是我正在寻找的东西,但我无法想出更好的标题(“完整”一词)这是关键)。

我有一个“编译数据库”,其中包含公共(public)交通路线规划器的所有类型的优化记录和统计数据,并且它是通过另一个数据库的程序生成的。已编译的数据库在事件期间永远不会更改,除了用户事件监视和缓存之外。有些表包含多达 2-300,000 条记录。

一旦输入数据库发生更改,此编译数据库就会完全更新。因此,任何新的数据库版本都不会以任何方式与任何其他先前版本交互。但我想单独存储每个版本,并且如果用户愿意的话,有机会从程序中使用它(将其视为公共(public)交通 map 的历史)。

唯一合理的方法就是为每个版本创建不同的物理数据库,这既不难也不错误,但我问您是否知道对完整数据库进行版本控制的任何机制(不仅仅是其中的部分数据,例如其他帖子正在询问),目的是使整个事情更加逻辑和清晰。

我使用的是 SQL Server 2012,但服务器上可能是 2008 R2。

如果您考虑将版本化数据存储在同一个数据库中(并在每个表中添加一个 VersionID 列),那就算了,因为在一个有 2-300,000 条记录的表上,有 10 个版本(这将在更少的时间内累积)超过3个月)意味着超过300万条记录,其中只有30万条会被使用,所以,没门!

最佳答案

我认为多数据库方法很好。您可以尝试进行存储级重复数据删除。这可能会大大减少存储使用量。只需确保创建新数据库作为备份并从旧数据库恢复,以便它们大部分字节相同。

关于sql-server - SQL Server 中的完整数据库版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976592/

相关文章:

sql - 如何使用对称 key 加密和解密 SQL Server 中的整数数据类型列

asp.net - ')' 附近的语法不正确。当尝试将值插入数据库时

python - 我应该固定我的 Python 依赖项版本吗?

java - 如何使用 Scala (50.0/51.0) 发出更新的类文件版本?

mysql - 更新时增加版本列

c# - C# 中具有 3 个参数的标量 sql 函数

sql - 如何处理SQL Server数据库中的重复记录

sql - 如何从 sql 语句或存储过程连接到外部数据库?

sql - 具有相同列和相同 where 子句的两个表的并集

sql - 如何在存储过程的 IN 过滤器内将 nvarchar 转换为 int