平成30年度 秋期 基本情報技術者試験 午前 問29
テクノロジ/データベースロックの粒度に関する説明のうち,適切なものはどれか。
出典:平成30年度 秋期 基本情報技術者試験 午前 問29
- アデータを更新するときに,粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。
- イ同一のデータを更新するトランザクション数が多いときに,粒度を大きくすると,同時実行できるトランザクション数が増える。
- ウ表の全データを参照するときに,粒度を大きくすると,他のトランザクションのデータ参照を妨げないようにできる。
- エ粒度を大きくすると,含まれるデータ数が多くなるので,一つのトランザクションでかけるロックの個数が多くなる。
正解:ア
解説
ロックの粒度を大きくする(表単位など広い範囲をロックする)と,一度に多くのデータがロックされるため,他のトランザクションが同じ範囲のデータにアクセスしようとしたときの待ちが発生しやすくなり,システム全体のスループットが低下します。逆に粒度を小さくする(行単位など)と,同時実行できるトランザクションが増えますが,管理するロックの数は増加します。
選択肢ごとの解説
- ア正しい。粒度を大きくすると,ロックされる範囲が広がるため他のトランザクションの待ちが増え,スループットが低下します。
- イ誤り。同一データを更新するトランザクションが多いときに粒度を大きくすると,競合が増えて同時実行できるトランザクション数はむしろ減ります。
- ウ誤り。粒度を大きくして表全体をロックすると,他のトランザクションのデータ参照も妨げてしまいます。
- エ誤り。粒度を大きくすると,ロックする対象がまとまるため,一つのトランザクションでかけるロックの個数はむしろ少なくなります。