0

Sql Server データベースには、mdf ファイルと ldf ファイルの両方があります。Mdf はデータで、ldf は変更ログです。データベース内のすべての「データ」の変更を追跡する必要があります。これまで、同じ名前で dcr (データ変更レコード) スキーマを持つミラー テーブルを使用してきました。これらは、挿入、更新、削除のトリガーによって設定されます。正常に動作しますが、かなりのオーバーヘッドです。

私は現在、このアプリケーションを更新しているので、ほとんど使用されていないが何らかの形で「必要な」機能であるこの機能を再検討する良い機会になると考えました。これに Sql Server ldf ファイルを使用できますか? 列の変更ごとにすべてのデータが存在し、クエリは簡単ですか?

たとえば、現在、ユーザーは 2013 年 1 月 1 日 14 時 00 分に顧客 x のレコードを私に渡すことができます。これは、dcr.Customer テーブルに対する単なる「間」クエリです。LDFでこれを行うことはできますか?

そうでない場合、これに対するオープンソースのオプションはありますか? それとも、トリガーによる変更追跡はどのように行われるのでしょうか?

4

1 に答える 1

1

これを行うための最も迅速で簡単な方法である変更データ キャプチャは、残念ながら Express では使用できません。変更の追跡はすべてのエディションで利用できますが、前後の値ではなく、どの行と列が変更されたかを示すだけです。

CDC を実行するためのコードプレックス プロジェクトがありますが、それはあなたのライン、つまりトリガー ベースに沿って構築されているように見えます。これは、高価なバージョンなしでそれを行う方法について以前に言われたことと一致しています。

http://standardeditioncdc.codeplex.com/

それでも、他の誰かのプロジェクトは、それを使用すると時間を節約できるか、パフォーマンスの向上により多くの時間を費やすことができることを意味する可能性があるため、実装を比較するためのコード閲覧だけでも役立つ可能性があります。

于 2013-06-20T08:40:09.477 に答える