トランザクションとは
「商品を渡して、代金を受け取る」のように「ここからここまでワンセット」な処理単位のこと
引用元:「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
この記事で説明したいこと
SQL Serverによるトランザクション処理の実行時、どのようにしてコミット処理やロールバック処理が動作しているかのイメージを伝えたい。
トランザクション実行時のメモリ領域はどうなっているか
トランザクション実行時には、実際の処理を行うのに必要なメモリが確保されます。
また、それと同じだけの大きさのトランザクションのための領域も同時に確保されます。
確保された後、実際の処理が行われていきます。
実際の処理が行われつつ、メモリ内のトランザクションログ領域にも実行内容が記録されていきます。
エラーが発生した場合には、トランザクションログ領域の内容に従って処理がロールバックされます。
トランザクション終了後の挙動
トランザクションが終了されたタイミングで、トランザクションログ領域は解放されます。
※解放とは、確保していたメモリ領域を他のことに使える状態にすること
ちなみに、上図の状態ではHDDなどのディスクへはデータの反映はされておらず、ダーティページと呼ばれる状態になっています。
※ダーティページについては物理アーキテクチャの内容でかつ長くなりそうなので今回は割愛
まとめ
トランザクション実行時にSQLServerどのようにメモリを利用して処理内容を管理しているかが伝われば嬉しいです。