ロックエスカレーションとは?ロックエスカレーション
ロックエスカレーションとは、細かい粒度のロックが一定数を超えたとき、DBMSがそれらを破棄して上位粒度のロック1本へ自動的に置き換える動作。ロック管理領域の枯渇を避けるための防衛機構であり、開発者が指示しなくても発生し、起きた時点で待たされる範囲が一気に広がる。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
行ロックは1本ごとに管理情報を占める。数百万行を更新するバッチが走ると管理領域があふれ、無関係なトランザクションまで巻き込んで異常終了しかねない。そこで領域を守るために粒度を粗い側へ切り替える。守られるのはメモリであって応答時間ではないため、業務時間帯に起きると待ちが一気に広がるという性質を持つ。
具体例
Microsoft SQL Serverは既定で約5,000本を目安に行ロックを表ロックへ昇格させる。夜間の受注データ一括更新なら問題にならないが、同じ処理を日中に流すと表全体が押さえられ参照系の画面まで待たされる。コミットを分割して1トランザクションのロック本数を抑えるのが定石になる。
試験での引っ掛け
向きは細→粗の一方向で、粗いロックを行ロックへ細分化する動作は存在しない。また下がるのは管理コストであって、同時実行性はむしろ悪化する——「性能改善機能」と読むと結論が逆になる。更新だけでなく共有ロックの本数超過でも起こり得る。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。