2013-06-20 50 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/

不過 - 別人的項目可能意味着它的使用可以節省您的一些時間或者他們奉獻更多的時間來改善性能,所以它可能是對你有用的 - 甚至只是代碼審閱比較的實現。

相關問題