ロックの粒度とは?
ロックの粒度とは、ロックを掛ける単位の大きさ。データベース全体・表・ページ・行(レコード)・列と段階があり、粒度を粗くするほど管理するロック情報が少なく制御は軽いが同時実行性は下がる。細かくするほど並行性は上がるがオーバヘッドが増える、というトレードオフがFEで問われる。
基本情報技術者試験の過去問では3回出題されています(2016年度〜2018年度)。
ろっくのりゅうど
ロックの粒度の意味
ロックを掛ける単位の大きさ。データベース全体・表・ページ・行(レコード)・列と段階があり、粒度を粗くするほど管理するロック情報が少なく制御は軽いが同時実行性は下がる。細かくするほど並行性は上がるがオーバヘッドが増える、というトレードオフがFEで問われる。
ロックの粒度の具体例
受注表を夜間バッチで全件更新するなら表単位のロックが有利で、数万行を1件ずつロックする無駄が省ける。逆にオンラインで多数の利用者が別々の受注番号を更新する画面では、行単位ロックにしないと1人の更新中に全員が待たされる。
ロックの粒度は試験でどう引っ掛けられる?
「粒度を細かくすれば性能が上がる」と単純化しないこと。ロック管理表が膨れ、CPUとメモリの負荷が増える。また細かいロックを多数取るほど取得順序が入り乱れ、デッドロックの発生確率はむしろ高くなる。
ロックの粒度と関連する用語
ロックの粒度が出た過去問
DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
正解:排他制御
要点:同時更新の矛盾はロックによる排他制御で防ぐ
複数のトランザクションが同じデータを同時に更新すると、一方の更新がもう一方に上書きされるなどの矛盾が生じる。これを防ぐため、更新中のデータに施錠して他からの操作を待たせる仕組みが排他制御である。ロックの粒度や共有ロック・専有ロックの使い分けによって、矛盾を防ぎつつ並行性をなるべく損なわないよう調整する。
出典:平成28年度 春期 基本情報技術者試験 午前 問30(IPA)ロックの粒度に関する説明のうち,適切なものはどれか。
正解:データを更新するときに,粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。
要点:ロック粒度を大きくすると競合が増え同時実行性が下がる
ロックの粒度とは一度にロックする範囲の大きさを指す。粒度を大きく(表単位など)すると、1件しか更新しない場合でも広い範囲が押さえられ、他のトランザクションが待たされる時間が増える。その結果、同時実行性が下がり単位時間当たりの処理件数が落ちる。
出典:平成30年度 秋期 基本情報技術者試験 午前 問29(IPA)RDBMSのロックの粒度に関する次の記述において、a, bの組合せとして適切なものはどれか。並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行…
正解:a=表, b=行
要点:粗い粒度は競合しやすく、細かい粒度はメモリを多く使う
ロックの粒度が粗い表単位のロックでは、他のトランザクションが同じ表の別の行を触るだけでも待たされるため、競合が起こりやすい。一方、細かい行単位のロックはロック情報を行ごとに保持するので、管理用のメモリ使用量が多くなる。
出典:平成30年度 春期 基本情報技術者試験 午前 問30(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。