
No.1ベストアンサー
- 回答日時:
悲観ロックとは初めてききました。
一般的な言葉なんでしょうか?
楽観ロックとは、テーブルにもたせている更新タイムスタンプや、更新フラグを比較してロックするというものです。
例えば更新したいレコードを取得して、更新タイムスタンプを保持しておきます。
そして、更新する直前に再度レコードを取得して更新タイムスタンプが最初の時と変わっていないかどうかで、排他処理を行うというものです。
悲観ロックとは、おそらくDBの排他ロックのことでしょう。
排他ロックには、共有ロック、占有ロックがあります。
更新時には、占有ロックを使います。
更新するレコードに占有ロックをかけ、他のユーザーが更新しようとするのを物理的に制御します。
悲観ロックを使う場合は、デッドロックが発生する恐れがあるので使う場合には注意が必要です。
それぞれのメリット/デメリットですが
楽観ロックのメリット
・デッドロックを気にする必要がない
楽観ロックのデメリット
・テーブルにタイムスタンプをもつ必要がある。
・プログラムで制御する必要がある
悲観ロックのメリット
・プログラムで気にする必要がない
悲観ロックのデメリット
・デッドロックが発生する恐れがある
・ロックの間トランザクションを維持しておかないといけない
などでしょうか。
参考URL:http://monjyu.biz/monjyu/bd2/oracle1/msg/105.html
No.2
- 回答日時:
楽観ロック、悲観ロックでなく、楽観的ロック、悲観的ロックでさがすと
割と見つかると思いますよ。
楽観的ロック=確実性に欠けるが事実上は問題が出ないで”あろう”というレベルのロック制御
悲観的ロック=如何なる状況下においても確実に行われるロック制御
楽観的ロック制御の方法は、さまざまなので説明を割愛します。
#1で書かれているような更新時刻を使う手法以外にも、たくさんの方法がありえます。
参考URL:http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/99 …
この回答へのお礼
お礼日時:2006/05/22 09:08
お答えありがとうございます。
本当ですね。楽観的ロックでググるとたくさん出てきました。
めぼしいところを調べてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT文でのデッドロックに対...
-
SELECT時の行ロックの必要性に...
-
AccessShareLock はどの程度気...
-
accessのロック
-
SELECT文でタイムアウト...
-
トランザクション中にSELECTし...
-
DB2でSelectした時(rollback,c...
-
INSERTにおいてロック処理は必要か
-
SQLServer Insertが遅い
-
DB2のロック調査
-
排他ロックしたレコードが、別...
-
更新ロックとデッドロック
-
Oracleの排他制御について教え...
-
SELECT FOR UPDATE にトランザ...
-
ExcelからAccess2013DBを更新す...
-
アクセス負荷の分散
-
同時書き込み
-
パススルークエリでのロックに...
-
「マスタ」と「テーブル」の違...
-
3つ以上のテーブルをUNIONする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文でのデッドロックに対...
-
SQLServer Insertが遅い
-
SELECT時の行ロックの必要性に...
-
accessのロック
-
AccessShareLock はどの程度気...
-
Oracleの排他制御について教え...
-
更新ロックとデッドロック
-
INSERTにおいてロック処理は必要か
-
DB2のロック調査
-
排他ロックしたレコードが、別...
-
トランザクションとlast_insert_id
-
SELECT文でタイムアウト...
-
トランザクション中にSELECTし...
-
デッドロックが発生します。
-
ExcelからAccess2013DBを更新す...
-
UPDATE文で発生するデッドロッ...
-
トランザクション処理について
-
DB2でSelectした時(rollback,c...
-
パススルークエリでのロックに...
-
SELECT FOR UPDATE にトランザ...
おすすめ情報