RDBMSのロックの粒度に関する次の記述において、a、bの組合せとして適切なものはどれか。
並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると、ロックの競合がより起こりやすいのは a 単位のロックを使用する場合である。また、トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは b 単位のロックを使用する場合である。
┌───┬───┐
│ a │ b │
┌─┼───┼───┤
│ア│ 行 │ 行 │
├─┼───┼───┤
│イ│ 行 │ 表 │
├─┼───┼───┤
│ウ│ 表 │ 行 │
├─┼───┼───┤
│エ│ 表 │ 表 │
└─┴───┴───┘
ウ
ロックの粒度はロックの範囲の大きさと考えるとよい。
行単位と表単位では、行単位の方が粒度が小さく、表単位の方が粒度が大きいと言える。
また、ロックの競合が起こりやすいのは、粒度が大きい方である。従って、aには表が入る。
トランザクションが多ければ多いほど、メモリ使用領域は多く必要になる。従って、表単位でロックするよりも、トランザクション単位でロックする方がメモリ使用領域がより多く必要になる。トランザクション単位でロックするということは、行単位でロックすることになるため、bには行が入る。
問29 | 目次 | 問31 |