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