RDBMS のロックの粒度に関する次の記述において, a, b の組合せとして適切なものはどれか。
並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べ ると, ロックの競合がより起こりやすいのはa単位のロックを使用する場合である。また, トランザクション実行中にロックを管理するための RDBMS のメモリ使用領域がより多く必要になるのは b単位のロックを使用する場合で ある。
a | b | |
ア | 行 | 行 |
イ | 行 | 表 |
ウ | 表 | 行 |
エ | 表 | 表 |
解説を読む
正解:ウ
解説:
データベースで排他制御を行う際にどの単位で制御するかをロックの粒度と呼びます。本問では表に対する排他と行(レコード)に対する排他を比較しています。表単位でロックを掛けた場合、他のトランザクションが仮に当該レコードとは違うレコードを参照したいとした場合でも表全体にロックが掛かっているので参照できません。すなわち競合が増える結果になります。また、レコードに対する排他を行った場合はレコード毎にトランザクションがロックを掛けるためにロック量が増えメモリ使用量も増えることになります。
このことからaには「表」bには「行」が相応しいのでウが正解となります。
解説を閉じる
コメント