2013-06-20 48 views
0

Sql Server数据库同时具有mdf和ldf文件。 Mdf是数据,ldf是变更日志。我需要跟踪数据库中的每个“数据”更改。到目前为止,我已经使用了具有相同名称但是具有dcr(数据更改记录)模式的镜像表。这些由插入,更新,删除触发器填充。工作正常,但这是相当多的开销。我可以使用sql server日志文件进行更改跟踪吗?

由于我在更新此应用程序的时刻,我认为现在应该是重温这个几乎从未使用过的,但某种“需要”功能的好时机。我可以为此使用Sql Server ldf文件吗?数据是否全部以列为单位进行更改,并且查询起来很简单?

例如,现在用户可以说给我客户x的记录在2013年1月1日14时。这就是dcr.Customer表中的“between”查询。我可以用ldf来做到这一点吗?

如果没有,是否有这样的开源选项?或者触发器的变化跟踪是如何完成的?

+1

有一些内置的选项取决于你有哪些sql server版本和版本 - 请你能向我们提供这些细节吗? –

+0

Sql Server 2012 Express Edition和Standard版本的组合取决于客户......但主要是Express即便宜;) – rism

回答

1

不幸的是,Change Data Capture是最快最简单的方法。更改跟踪在所有版本上都可用,但它只会告诉您哪些行和列发生了更改,而不是之前和之后的值。

有一个用于执行CDC的codeplex项目,但它看起来是沿着你的行构建的,即基于触发器,这与我之前告诉过的有关如何在没有昂贵版本的情况下执行操作一致。

http://standardeditioncdc.codeplex.com/

不过 - 别人的项目可能意味着它的使用可以节省您的一些时间或者他们奉献更多的时间来改善性能,所以它可能是对你有用的 - 甚至只是代码审阅比较的实现。

相关问题