楽観的同時実行制御とは?らっかんてきどうじじっこうせいぎょ
楽観的同時実行制御とは、処理の最中はロックを取らずに読み書きを進め、コミットの直前に他のトランザクションと競合しなかったかを検証して、衝突していればそのトランザクションをやり直す方式。読取り・検証・書込みの3段階で構成され、競合がまれな業務ほど有利になる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
ロックによる制御は、競合が実際に起きたかどうかに関わらず、待ちとデッドロック検出と管理表のコストを常に払う。競合がまれな業務ではこれが割に合わない。さらに画面を開いてから保存するまでが人間の操作時間ぶん長いWebの編集では、その間ロックを持ち続けること自体が現実的でない。競合を前提にせず、起きたときだけ払う設計に切り替えたのがこの方式である。
具体例
会員情報の編集画面でバージョン列を画面に持たせ、更新時に UPDATE … WHERE バージョン = 読んだ値 として更新件数が0なら「他の人が先に更新しました」と返す。
試験での引っ掛け
競合が少ない環境では待ちが生じず有利だが、競合が多いとやり直しが頻発し、ロックによる悲観的制御より遅くなる。やり直しの手順を用意するのはアプリケーション側の責任で、ロックのように自動で待ってはくれない点も違う。
関連用語
出た過去問
出典:令和2年度 10月試験 データベーススペシャリスト試験 午前Ⅱ 問14(IPA)
同時実行制御の手法の一種である楽観的制御法に関する記述として、適切なものはどれか。
正解:データに対してのロックは行わずに、更新対象のデータが他のトランザクションと競合がなかったことを確認してからコミットを行う。
要点:楽観的制御はロックせず、コミット時に競合を検証する
楽観的制御法は、競合はめったに起きないという前提に立ち、読み書きの間はロックを取らずに処理を進める方式である。コミットの直前に、参照・更新した対象が他のトランザクションによって書き換えられていないかを検証し、競合がなければ確定、あればトランザクションを取り消してやり直す。よってイが適切である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。