DP-900Azure の分析ワークロードHARD複数選択

ある企業が Azure Synapse Analytics の専用 SQL プールでクエリのパフォーマンスチューニングを行っている。クエリ実行を高速化するために有効な手法を2つ選択してください。

  1. A. すべてのテーブルをレプリケート(REPLICATE)分散にして、全ノードにデータをコピーする
  2. B. すべてのテーブルを ROUND_ROBIN 分散に変更し、データの均等配布を保証する
  3. C. JOIN の対象となるファクトテーブルを HASH 分散し、JOIN キーが同一ノードに配置されるようにする
  4. D. クエリで頻繁にフィルタリングされる列に列ストアインデックス(Clustered Columnstore Index)を活用する
  5. E. 専用 SQL プールを廃止してサーバーレス SQL プールに切り替え、コストを削減する
解答と解説を見る

正解: C, D

HASH 分散は JOIN キーを基準にデータを各ノードに配布するため、JOIN 時のデータ移動(シャッフル)が不要になりクエリが大幅に高速化される(選択肢 C が正解)。また列ストアインデックス(Clustered Columnstore Index)は列指向の圧縮と段階的スキャンにより、フィルタリング・集計クエリのパフォーマンスを大幅に向上させる(選択肢 D が正解)。選択肢 B の ROUND_ROBIN 分散はデータを均等に配布するが JOIN キーと無関係なため、JOIN 時に大量のデータ移動が発生しパフォーマンスが低下する場合がある。選択肢 A はすべてのテーブルをレプリケートすることだが、大きなファクトテーブルのレプリケートはストレージコストと更新コストが膨大になるため非推奨である。選択肢 E はサーバーレスへの切り替えだが、サーバーレスは専用 SQL プールと役割が異なり(探索的クエリ vs 大規模バッチ分析)、代替としては適切でない場合が多い。

▸ この試験を本気で演習する(全150問・無料)