SQL Server Tips 楽観的、悲観的データ更新とは
photo by Kristi 🙂 (is back!!)
オプティミスティック同時実行制御
ペシミスティック同時実行制御
VB.NETのDataSetで使用を奨励されているデータの更新をするためのモデルとして、オプティミスティック同時実行制御があります。
-
オプティミスティック(optimistic)とは直訳すると、「楽観的」という意味で、データを更新する際、ほかの誰かが更新しようとしているかもしれないが、とりあえず更新してしまおうという方式。
この為、競合する更新を時系列適に同時実行している場合、先に更新してしまったほうは成功するが、その後に更新を実行したほうは失敗する。
もうひとつの、悲観的データ更新とは、
-
ペシミスティック(pessimistic)とは直訳すると、「悲観的」という意味で、データを更新する際、更新処理が始まればロックをかけて、更新が終了すればロックを解除する。すなわち、最初から競合が発生しないようにする方式。
この為、競合する更新を時系列適に同時実行している場合、更新を始めた人がロックをはずすまで、その後の更新は実行することができない。
オプティミスティック同時実行制御に違反している(すでに更新されているか)か調べるには、DataSetでは2つの方法が使用されています。
- 行のすべての列の元の値が、データベース内の値とまだ一致しているかどうかの検証
- TimeStamp列の値を比較して、この値が一致するかどうかの検証
DataTableにTimeStamp値が含まれない場合、すべての列の元の値を比較検証されます
DataTableがTimeStamp値を含む場合、TimeStamp値を使用して比較検証されます
関連するエントリー
- None Found