既然我们有CDC或CT,为什么我们在SQL Server 2016中需要时态表?

与SQL Server中的更改数据捕获或更改跟踪相比,时态表有哪些优势?


解决方案

CDC和更改跟踪实际上并不是为了解决历史数据问题。顾名思义,变更跟踪或CDC告诉您事情发生了变化,以及变化是什么。您可以选择使用它做您想做的事情,如果您需要保留历史数据,这可能包括将数据持久存储在某个地方。这包括捕获、调整(例如,向架构添加某种类型的时间戳)、存储和管理数据及相关流程。这是可行的,但努力不是微不足道的,而且是持续的。

时态数据库提供本机功能来管理历史数据,包括查询语义。您必须滚动您自己的潜在复杂查询,才能在具有时间功能的数据库中获得相同的功能(例如,您的查询将是什么样子来回答这个问题:2016年8月28日下午3点,C区42个MCC2传感器的平均温度是多少?)这假设您已经拥有可查询格式的数据。

有很多关于为什么应该暂时结账的好文章:Why do we need a temporal database?

相关文章