※ 以前にPASSJブログで累計25,000人くらいに読まれたエントリーです。SQL Server以外のコミュニティにも参照していただきました。原文のまま、MSDNブログに転載します。
データベースというよりは、トランザクション処理ネタなのですが、皆さんは、データベースのトランザクション処理を実行される場合、対象となる行をどのように排他制御されていますか。排他制御というのは、同時実行処理において必要不可欠なものなのですが、使い方を誤ると簡単なはずの処理が難しくなってしまう可能性があります。一般的にリソース(資源)をロックする必要がある場合、2種類の方法が選択できます。 ・悲観的ロック(Pessimistic lock) ・楽観的ロック(Optimistic lock) この記事では、トランザクション処理の大半は「楽観的ロックでいいじゃん!」という話を書いてみたいと思います。
スタンドアロンでプログラムが動いていた時代は、1ユーザ、1プログラム、1データのみが存在するため、排他制御ということを考えなくてもアプリケーションの開発は行えました。コンピュータがネットワークでつながるようになって...(read more)
↧