」や「sys.fn_dblog」を利用して内容を確認するという方法があります。関数はアンドキュメントとなっており、詳細な情報は公開されていません。次のようなクエリでテーブルを作成してみます。[PRIMARY]GOこのテーブルに対して「8GB=1かずあき」を基準とした、テストデータをかずあきって見たいと思います。N'32GB=∞かずあき')かずあきった後にトランザクションログを確認してみます。'dbo.T1'「LOP_INSERT_ROWS」という操作が「dbo.T1」に対して実行されたという情報がトランザクションログに書き込まれていることが確認できます。このような方法でトランザクションログを確認することで「どのような操作が行われたか?」の大枠を把握することについては、広く知られている方法ではないでしょうか。(CDC)」がメジャーかと思います。記載されている画像です。レプリケーションや変更データキャプチャは「トランザクションログから必要となる操作のログレコードをキャプチャし、操作を記録するテーブルに格納をする」というようなアプローチがとられています。サードパーティー製品としてはトランザクションログの内容を分析して、更新内容に実データを表示するツールも存在しています。readersarasaトランザクションログには、変更の内容が記録されており、正しく分析を行うことで「どのような変更があったかの実際のデータを復元することができる」ということです。冒頭で紹介した、「sys.fn_dblog」からはトランザクションログの実際のデータを参照することができます。Record」がログレコード全体の内容となっており、この関数では、この情報解析してユーザーが理解しやすい形に加工して結果を出力しています。すべてのデータが加工されているわけではありません。x」に格納されています。INSERTした際の該当の情報を見てみましょう。x」のフィールドについてはバイナリデータのままの表示となっており、そのままではどのような変更があったかまでは表示されていません。よって、どのようにデータが格納されたのかをきちんと確認することができます。実際に解析をしたものがこちらになります。したデータのバイナリ化された情報が格納されています。解析すると次のようなデータとして復元することができます。0」には次のようなバイナリデータが格納されています。0x30001F000100000002000000313647423D3282A982B882A082AB2020202020050000020036004A00313647423D3282A982B882A082AB33003200470042003D001E224B305A3042304D30これをバイナリデータのフォーマットを意識しながらパースすると次のような情報を得ることができます。パースして取得しています。かずあきった内容が取得できていますね。同様のアプローチが使用することができ、トランザクションログの内容を復元することができます。Contents」に変更された実データが格納されており、正しいフォーマットに則りバイナリデータの解析を行っているからです。元のテーブルの構造がわからないと、上記のような分析はできないはずなのですが、頑張ると「トランザクションログがどのようなレコードを生成しているのか」を可視化することも可能です。このようなトランザクションログの分析についての情報ですが、日本語の情報はほとんど見たことがない気がします。いう考え方の中で情報を入手することができます。どのようなことが行われたのかの真実を分析する」ための手法となります。その中には「トランザクションログの分析」も含まれており、ログに含まれる内容からデータを復元するために、トランザクションログのバイナリデータを解析する際に必要となるフォーマットについても触れられています。Analysis」で検索してみて下さい。次のようなドキュメントを確認することができます。ログをパースしたものとなります。開設されている情報を元にすると、作成したスクリプトの抜粋ですが、次のようなバイナリデータの解析で、トランザクションログの中に含まれているデータ変更の実体を確認することができます。勉強は果て無く続きますねぇ。チューニング等をメインにしていますが、本ブログで情報発信している内容に関することでしたら対応できます。お仕事のご相談がありましたらTwitterfacebookやブログのコメントでご連絡いただけると幸いです。ブログにコメント頂いた内容は私が承認しない限り表示されません。受賞させていただきました。本ブログの内容は個人的に検証したものとなり、検証結果を含め記載している内容を保証するものではありません。体験記の連載をさせていただきました。最後まで飲み切れず...。