トランザクション処理(全58問中12問目)
No.12解説へ
RDBMSのロックの粒度に関する次の記述において,a,bの組合せとして適切なものはどれか。
並行に処理される2つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのはa単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのはb単位のロックを使用する場合である。
並行に処理される2つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのはa単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのはb単位のロックを使用する場合である。
出典:平成30年春期 問30
正解 ウ問題へ
広告
解説
ロックの粒度とは、データベース、表、物理的な入出力単位であるブロック、行といったロックをかける資源の単位をいいます。ロックの範囲が狭い(粒度が細かい)ほど資源の競合やロック解除の待ち時間が少なくなり、トランザクションの並列実行性が増します。
〔aについて〕
まずロックの競合についてですが、設問では表単位のロックと行単位のロックを比較しているので、ロックの競合が起こりやすいのは、より広い範囲をロックする表単位です。
〔bについて〕
メモリ使用領域は、同時に実行されるトランザクションが増えるほど多く必要になります。その理由は、1つのトランザクションを実行するときよりも、複数のトランザクションを並列に実行したときの方が、同時に管理するロックの絶対数が増えるからです。つまりメモリ使用領域が多く必要になるのは、トランザクションの同時実行数が多い行単位です。
以上より、適切な組合せは、a=表、b=行 とわかります。よって「ウ」が正解です。
〔aについて〕
まずロックの競合についてですが、設問では表単位のロックと行単位のロックを比較しているので、ロックの競合が起こりやすいのは、より広い範囲をロックする表単位です。
〔bについて〕
メモリ使用領域は、同時に実行されるトランザクションが増えるほど多く必要になります。その理由は、1つのトランザクションを実行するときよりも、複数のトランザクションを並列に実行したときの方が、同時に管理するロックの絶対数が増えるからです。つまりメモリ使用領域が多く必要になるのは、トランザクションの同時実行数が多い行単位です。
以上より、適切な組合せは、a=表、b=行 とわかります。よって「ウ」が正解です。
広告