1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

トランザクション実行時のメモリ領域はどうなっているか

Posted at

トランザクションとは

「商品を渡して、代金を受け取る」のように「ここからここまでワンセット」な処理単位のこと

引用元:「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

この記事で説明したいこと

SQL Serverによるトランザクション処理の実行時、どのようにしてコミット処理やロールバック処理が動作しているかのイメージを伝えたい。

トランザクション実行時のメモリ領域はどうなっているか

トランザクション実行時には、実際の処理を行うのに必要なメモリが確保されます。
また、それと同じだけの大きさのトランザクションのための領域も同時に確保されます。
image.png

確保された後、実際の処理が行われていきます。
実際の処理が行われつつ、メモリ内のトランザクションログ領域にも実行内容が記録されていきます。
image.png

エラーが発生した場合には、トランザクションログ領域の内容に従って処理がロールバックされます。
image.png

トランザクション終了後の挙動

トランザクションが終了されたタイミングで、トランザクションログ領域は解放されます。
※解放とは、確保していたメモリ領域を他のことに使える状態にすること
image.png

ちなみに、上図の状態ではHDDなどのディスクへはデータの反映はされておらず、ダーティページと呼ばれる状態になっています。
※ダーティページについては物理アーキテクチャの内容でかつ長くなりそうなので今回は割愛

まとめ

トランザクション実行時にSQLServerどのようにメモリを利用して処理内容を管理しているかが伝われば嬉しいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?