什么是更好的做法?:
将历史记录保存在单独的历史表中
在不同状态的事件表中保留历史记录?
在我看来,我宁愿保留一个单独的表,以避免创建一个包含重复记录的巨大表,这可能会在查询表时导致不必要的延迟时间。
最佳答案
我的偏好一直是有一个单独的历史记录表,纯粹是因为它不需要“WHERE Status = 'LIVE'”或“WHERE CurrentRecord = 1”来获取最新记录(我不会得到到一个需要内联查询来获取 max(version) 以获得最新版本的设计中)。这应该意味着当前记录表应该保持较小并且访问时间可能会有所改善等。在最坏的情况下,我已经看到针对表的临时查询选择了错误版本的记录,导致各种问题以后的问题。
此外,如果您已经从另一个表中获取历史记录,则可以对数据进行分片,因此一年中的所有历史记录都在一个表/数据库中,而另一年的所有历史记录都在另一个表/数据库中,依此类推。
关于sql-server - 使用历史表的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3874111/