Change Data Capture是SQL Server 2008中的一项新功能.来自MSDN:
变更数据捕获通过捕获DML更改的事实和已更改的实际数据来提供用户表的历史更改信息.通过使用读取事务日志并对系统影响较小的异步进程捕获更改
这非常甜蜜 - 不再需要手动添加CreatedDate和LastModifiedBy列.
Oracle有这样的东西吗?
当然.实际上,Oracle根据业务需求提供了许多此类技术.
Oracle 长期以来(8i天)拥有一个名为Workspace Manager的东西,它允许您对表进行版本启用并跟踪一段时间内的变化.但是,这可能有点重量级,因为它基于具有替代触发器的视图.
从11.1开始(作为企业版的额外成本选项),Oracle有一个Total Recall,它异步挖掘重做日志以获取记录到单独表的数据更改,然后可以使用主表上的闪回查询语法查询该表.Total Recall自动进行分区和压缩历史数据,并在指定的数据保留期后自动清除数据.
Oracle拥有LogMiner技术,可以挖掘重做日志并向消费者提供交易.然后,有许多技术构建在LogMiner之上,包括Change Data Capture和Streams.
如果目标是复制更改,您还可以使用物化视图和物化视图日志.