ホーム > データベーススペシャリスト試験 > 2018年
データベーススペシャリスト試験 2018年 午前2 問17
トランザクションの隔離性水準を高めたとき、不整合なデータを読み込むトランザクション数と、単位時間に処理できるトランザクション数の傾向として、適切な組合せはどれか。

ア:
イ:
ウ:
エ:(正解)
解説
トランザクションの隔離性水準を高めたときの影響【午前2 解説】
要点まとめ
- 結論:隔離性水準を高めると不整合なデータを読むトランザクション数は減り、処理性能は低下する傾向にある。
- 根拠:高い隔離性はデータの一貫性を保つためにロックや待機が増え、同時実行性が下がるため処理速度が落ちる。
- 差がつくポイント:隔離性の向上が性能に与えるトレードオフを理解し、単純に性能向上とはならない点を押さえること。
正解の理由
トランザクションの隔離性を高めると、データの不整合(ダーティリードやファントムリードなど)が減少します。これはロック制御やバージョン管理により、他のトランザクションの未確定データを読み込まなくなるためです。一方で、これらの制御はトランザクションの同時実行性を制限し、待機やロック競合が増えるため、単位時間あたりに処理できるトランザクション数は減少します。したがって、「不整合なデータを読み込むトランザクション数が減る」「単位時間に処理できるトランザクション数が減る」組み合わせであるエが正解です。
よくある誤解
隔離性を高めると必ず処理性能が上がると誤解しがちですが、実際は性能低下のリスクがあるためバランスが重要です。
解法ステップ
- トランザクションの隔離性とは何かを理解する(データの一貫性を保つレベル)。
- 隔離性が低いと不整合なデータを読み込む可能性が高いことを認識する。
- 隔離性を高めるとロックや待機が増え、同時実行性が下がることを把握する。
- これにより不整合なデータを読むトランザクション数は減るが、処理性能は低下することを結びつける。
- 選択肢の中から「不整合なデータを読み込むトランザクション数:減る」「単位時間に処理できるトランザクション数:減る」を選ぶ。
選択肢別の誤答解説
- ア:不整合なデータが増えるのに処理性能も増えるのは矛盾している。隔離性を高める効果と逆の現象。
- イ:不整合なデータが増えるのに処理性能が減るのは隔離性を高めた場合の挙動と異なる。
- ウ:不整合なデータが減るのは正しいが、処理性能が増えるのは隔離性向上時の一般的な傾向と異なる。
- エ:不整合なデータが減り、処理性能も低下するため、隔離性を高めた場合の正しい傾向を示している。
補足コラム
トランザクションの隔離性はSQL標準で4段階(Read Uncommitted, Read Committed, Repeatable Read, Serializable)に定義されており、段階が上がるほどデータの一貫性は高まりますが、同時実行性は低下します。実務では性能と整合性のバランスを考慮して適切な隔離レベルを選択します。
FAQ
Q: 隔離性を高めると処理速度は必ず遅くなりますか?
A: 一般的には遅くなりますが、システムやワークロードによっては最適化で影響を抑えられる場合もあります。
A: 一般的には遅くなりますが、システムやワークロードによっては最適化で影響を抑えられる場合もあります。
Q: 不整合なデータとは具体的にどんな状態ですか?
A: 例えば、未確定の更新データを読み込む「ダーティリード」や、同じクエリで異なる結果が返る「ファントムリード」などがあります。
A: 例えば、未確定の更新データを読み込む「ダーティリード」や、同じクエリで異なる結果が返る「ファントムリード」などがあります。
関連キーワード: トランザクション, 隔離性, 不整合データ, 処理性能, ロック制御, 同時実行性, データベース管理