戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

システムアーキテクト 2025年 午前224


問題文

トランザクションの隔離性水準を高めたとき、不整合なデータを読み込むトランザクション数と、単位時間に処理できるトランザクション数との適切な組合せはどれか。
システムアーキテクト 2025年 午前2 問24の選択肢の画像

選択肢

(正解)

トランザクションの隔離性水準を高めたとき、不整合なデータを読み込むトランザクション数と、単位時間に処理できるトランザクション数との適切な組合せはどれか。【午前2 解説】

要点まとめ

  • 結論:隔離性を高めると、不整合なデータを読むトランザクションは減り、処理できるトランザクション数は減少する傾向が強い。
  • 根拠:高い隔離性はダーティリードやノンリピータブルリード、ファントムを防ぐためにロック強化や競合検出を行い、並行性が下がるからである。
  • 差がつくポイント:MVCCなど実装によって影響の度合いは変わるが、設問意図は「整合性向上=並行性(スループット)低下」のトレードオフである。

正解の理由

正解は (不整合なデータを読み込むトランザクション数:減る、単位時間に処理できるトランザクション数:減る)です。
隔離性を高める(例えば Read Committed → Repeatable Read → Serializable)と、読み取り時の不整合(ダーティリードや不整合な可視性)は抑制されます。一方で、より強い隔離は排他制御やコンフリクト回避の頻度や範囲を広げ、ロック待ちや再試行・オーバーヘッドを増やすため、同時実行できるトランザクション数や単位時間当たりのスループットは低下します。従って「減る/減る」が適切です。

よくある誤解(2〜3 行)

  • 「隔離性を上げれば常に性能が下がる」と単純化しがちですが、MVCCなどの方式では読み取りのブロッキングを抑えつつ整合性を確保できる場合があります。
  • 「不整合が減れば処理数は増える」と考える人がいますが、整合性維持のための制御がスループットを低下させる点を見落としやすいです。

解法ステップ

  1. 隔離性(Isolation)の意味を確認し、不整合な読み取り(ダーティリード等)がどう変わるか考える。
  2. 隔離性を高めると整合性は向上するため、「不整合なデータを読み込むトランザクション数は減る」と結論付ける。
  3. 次に、より強い隔離が並行性に与える影響(ロック・競合・再試行)を考え、スループットがどう変わるか判断する。
  4. 両者の組合せを選択肢と照合して最も整合するものを選ぶ。

選択肢別の誤答解説

  • ア(増える/増える)
    隔離性を高めて不整合読み取りが増えるという主張は矛盾。高隔離は不整合を減らすのが本質です。
  • イ(増える/減る)
    処理数が減る点は納得できても、不整合読み取りが増えるという部分が誤りで、隔離性向上では通常発生しない現象です。
  • ウ(減る/増える)
    不整合読み取りが減るという点は正しいが、強い隔離で並行性が上がる(処理数増加)は一般的な挙動と逆です。MVCCで読み取り負荷を抑えられても、総じてオーバーヘッドや競合は増えがちです。
  • エ(減る/減る)
    正解。整合性向上と並行性(スループット)低下のトレードオフを表します。

補足コラム(関連知識など)

  • ANSI SQL の代表的な隔離レベル:Read Uncommitted(最弱)→ Read Committed → Repeatable Read → Serializable(最強)。各レベルは「ダーティリード」「ノンリピータブルリード」「ファントム」の防止可否で差分が説明されます。
  • 実装方式の違い:2フェーズロッキング(2PL)はロック競合で待ちが発生しやすく、MVCC(マルチバージョン同時実行制御)は読み取りのブロッキングを回避しやすいがバージョン管理とガベージコレクションのオーバーヘッドを伴います。
  • 実務上は、厳密な整合性が必要なトランザクションに高隔離を、読み取り中心で整合性許容度がある処理に低めの隔離を使い分けることが多いです。

FAQ

Q: MVCCを使えば隔離性を上げてもスループットは落ちないですか?
A: MVCCは読み取りのブロッキングを減らしますが、書き込み競合やバージョン管理のコストは残るため、高隔離化によるスループット低下は完全には回避できません。
Q: どの隔離レベルでダーティリードが防げますか?
A: Read Committed 以上でダーティリード(他のトランザクションの未コミットデータ読み取り)は防止されます。
Q: 常に Serializable を使うべきですか?
A: 性能コストが高いため、業務要件に応じた適切な隔離レベル選択とアプリケーション側の整合性設計が望まれます。

関連キーワード: トランザクション、隔離性、同時実行制御、ロック、MVCC, スループット、ダーティリード、ノンリピータブルリード、ファントム、シリアライザビリティ
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

システムアーキテクト
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について