実戦シナリオ応用

あるeコマース企業が毎日2,000万件の注文トランザクションをAzure SQL Databaseの単一データベース(Standard S2)で処理しています。このシナリオで同社が以下の対応を検討している場合、最も効果的な解決策はどれか?

A.データベースをPremium P4にアップグレードして、より高いコンピュートリソースを確保する
✗ アップグレードだけでは一時的な効果に留まり、将来のスケーリングに限界が出ます。根本的なボトルネック(遅いクエリ)を改善していないため、しばらく後に同じ問題が再発します。
B.水平分割(シャーディング)を実装して、複数のデータベースに注文データを分散させる← 正解
✓ 正解です。2,000万件毎日の大規模トランザクション処理には、単一DBの限界を超えた水平スケーリング(シャーディング)が最も効果的です。注文IDなどで分割キーを設定することで複数DBに負荷を分散でき、スケーラビリティ問題を根本解決できます。
C.インデックス戦略を最適化し、スロークエリを削減する。同時にクエリ実行プランの分析も実施
✗ インデックス最適化とクエリ改善は重要な取り組みですが、毎日2,000万件規模の書き込み負荷に対しては補完的対策に留まります。単独では根本的なスケーラビリティ問題を解決できないため、最も効果的な解決策ではありません。
D.Azure Cosmos DBに移行して、エラスティックスケーリングを活用する
✗ Cosmos DBはスケーラビリティに優れていますが、複雑なトランザクション要件(複数テーブル間のACID)がある場合、SQL Databaseのシャーディングの方が適しています。

この問題のポイント

2,000万件毎日の大規模トランザクション処理には、単一DBの限界を超えた水平スケーリング(シャーディング)が最も効果的です。注文IDなどで分割キーを設定することで複数DBに負荷を分散でき、スケーラビリティ問題を根本解決できます。

DP-900:Microsoft Azure Data Fundamentals の問題一覧