有在SQL Server中共有四个解决方案,下面是详细:
- 的SQL Server更改跟踪[CTC]
- SQL Server的变化数据捕捉[CDC]
- SQL Server的审计跟踪使用触发器[通用 - 手动]
- SQL Server审核
SQL服务器赞GE跟踪[CTC]
优点
- 适用于所有的SQL Server版本
- DML触发器和其他表不是必需的,因为单一的临时 表由CTC命名CHANGETABLE创建
- 最小磁盘空间成本
- 打包函数可用于查询数据
- 配置的保留策略和CHANGETABLE的自动清理,也 自动清理可以关闭需要
- 没有必要时访问特定数据库的LDF文件
- 吹扫/截断可能使CTC时
缺点
- 需要启用数据库和EA上CH所需的表
- 同步跟踪机制
- 所有表的跟踪数据存储在一个名为 CHANGETABLE一个临时表
- 无法获得的历史数据也没有给出有关以前 和新的数据准确详细的跟踪列
- 组合键支持问题
- 需要主键
- 只有保持数据WRT操作的当前状态,I =插入, U =更新,d =删除
- SQL Server用户组 '系统管理员' 只能使CTC
SQL Server的变化数据捕捉[CDC]
优点
- 此特征提供一个表在启用数据库级别 后,逐个解决方案。
- 高效&快速异步跟踪机制
- 可以得到历史数据,还能够提供有关
- DML触发器不需要在影子表 以前和新的数据准确的细节,如新的表被创建对于每个表,CDC用 前缀'dbo_'和后缀'_CT'。
- 所有与CDC相关的表&函数将与'cdc' 模式一起引用。
- 所有CDC相关的存储过程将与 'SYS' 或 'CDC' 的架构
缺点被称为
审核跟踪与触发器[通用的解决方案]
优点
- 可以得到历史数据,也能给出确切的详细介绍 以前和新数据的影子表
- 列的精心控制WRT的选择,操作[I =插入, U =更新,d =删除]
- 过程可以由于复杂性而自动化,审计跟踪流程 可以用一些常规或服务来管理。
- 吹扫/截断以及自动清理,也可以自动
缺点
- 表的精确副本与一些额外的列被要求作为暗影 表
- 开发,数据管理和清除的复杂过程
- 数据存在时性能下降Omes巨大的阴影表中,清除是 要求
- 考虑到可靠性,安全性和性能方面的所有重要方面,需要很多时间来自动执行该过程。在原生的 解决方案中,DB Engine默认提供。
这提供了一些很好的建议:-http://stackoverflow.com/questions/2684293/change-data-capture-or-change-tracking-same-as-traditional-audit-trail-table – 2012-04-08 04:40:15
如果您需要跟踪同一列已连续两次更改,您可能需要查看CDC而不是更改跟踪。 [MSDN Comparison](http://msdn.microsoft.com/en-us/library/cc280519.aspx) – 2012-04-08 07:36:39
对不起,我的意思是CDC。 – 2012-04-08 15:00:07