HOME»データベーススペシャリスト掲示板»H24 AM2 問17
投稿する
おおよそ上記の理解で問題ありません。
は
の前かと思います。
[0158] H24 AM2 問17
柴犬さん(No.1)
WALプロトコルによると下記の順のようです。
@begin transactionレコードの書出し
Bログに更新前レコードの書出し
Cログに更新後レコードの書出し
Aデータベースの実更新
Dcommitレコードの書出し
Eend transactionレコードの書出し
Bログに更新前レコードの書出し
Cログに更新後レコードの書出し
はそれぞれなんのレコードを書き出しているのでしょうか。この項目の少し前に共有ロック等の話があるのですが、そことの関連がよくわかりません。
下記の理解で良いでしょうか?
トランザクション開始
→データロック
→データリード(データバッファへ)
→アップデート等々をデータバッファで実施
(その間に投げたSQLはログバッファに記載)
→データベースの今の値をログに記載(更新前レコード書出し)★
→データバッファの処理結果をログに記載(更新後レコード書出し)
→commit
→アンロック
→トランザクション終了
★の部分はロックかけたときにやっておいても問題ない気がするのですが、このタイミングでしょうか?
@begin transactionレコードの書出し
Bログに更新前レコードの書出し
Cログに更新後レコードの書出し
Aデータベースの実更新
Dcommitレコードの書出し
Eend transactionレコードの書出し
Bログに更新前レコードの書出し
Cログに更新後レコードの書出し
はそれぞれなんのレコードを書き出しているのでしょうか。この項目の少し前に共有ロック等の話があるのですが、そことの関連がよくわかりません。
下記の理解で良いでしょうか?
トランザクション開始
→データロック
→データリード(データバッファへ)
→アップデート等々をデータバッファで実施
(その間に投げたSQLはログバッファに記載)
→データベースの今の値をログに記載(更新前レコード書出し)★
→データバッファの処理結果をログに記載(更新後レコード書出し)
→commit
→アンロック
→トランザクション終了
★の部分はロックかけたときにやっておいても問題ない気がするのですが、このタイミングでしょうか?
2021.01.15 15:09
関数従属さん(No.2)
★DB ブロンズマイスター
>下記の理解で良いでしょうか?
おおよそ上記の理解で問題ありません。
>→データベースの今の値をログに記載(更新前レコード書出し)★
は
>→アップデート等々をデータバッファで実施
の前かと思います。
2021.01.15 22:22