ロックの粒度とは?ロックのりゅうど
ロックの粒度とは、ロックを掛ける対象の大きさで、データベース全体・表・ページ・行・列という階層をもつ。細かいほど同時実行性は高まるがロック管理のオーバヘッドが増え、粗いほどその逆になる。DBMSは階層間の整合を意図ロックで判定し、行ロック中の表への専有ロック要求を効率よく弾く。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
全表をロックすれば矛盾は起きないが、1人が更新している間に他の全員が待たされる。逆に行ごとにロックすると管理情報が膨れ、多数の行を触る処理では表ロック1個のほうが軽い。同時実行性と管理コストのどちらを取るかを場面ごとに選ぶために粒度の階層がある。支援士試験では排他制御の設計に加え、ロック待ちを意図的に起こすDoSやロックエスカレーションによる可用性低下の文脈で問われる。
具体例
SQL Serverは行ロックが一定数を超えると自動で表ロックへ引き上げる(ロックエスカレーション)ため、夜間バッチがオンライン更新をブロックすることがある。Oracle Databaseは行ロックを基本とし、表レベルのTMロックで階層の整合を取る。
試験での引っ掛け
粒度は階層関係にあるので、ある行に共有ロックが掛かっている間は上位の表への専有ロックは取れない。この判定を毎回下位まで走査せずに済ませるのが意図ロックで、「意図ロック=弱いロック」ではない。細かい粒度が常に速いわけでもなく、大量行を触る処理では粗いほうが速い。
関連用語
出典・参考
公式シラバスの3 技術要素 > 4. トランザクション処理 > (1) 同時実行制御(排他制御)に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。