Instiq
第4章 · 最適化·v1.0.0·更新 2026/6/28·読了目安 約14分

変更要約: DP-420 第4章を新規作成(ドメイン4: クエリ最適化とインデックス(インデックスポリシー included/excluded path・書き込み多 vs 読み取り多・複合インデックス・range/spatial・統合キャッシュ integrated cache 専用ゲートウェイ・RU コスト request charge/クエリメトリクス)、変更フィード(Azure Functions トリガー/SDK change feed processor・lease/変更フィードエスティメーター backlog/非正規化更新・参照強制・集計永続化・アーカイブ))。

4.1クエリ最適化とインデックス

この節の要点

インデックス調整、クエリの RU コスト計算/取得、統合キャッシュ、読み取り多 vs 書き込み多のインデックス戦略、複合インデックス、カスタムインデックスポリシーを理解します。

Cosmos DB は既定で全プロパティをインデックスします。インデックスポリシー をワークロードに合わせて調整することが、クエリ性能と RU コストの最適化の核心です。

4.1.1インデックス戦略と複合インデックス

カスタムインデックスポリシーでは included path(インデックスする)excluded path(除外する) を指定する。書き込み多のワークロード は不要なパスを除外してインデックス更新の RU を下げる(インデックスが少ないほど書き込みは安い)。読み取り多 はクエリの絞り込みに使うパスをインデックスする。複合インデックス(composite index) は、複数プロパティでの ORDER BY や複数フィルタを効率化する(単一インデックスでは賄えないクエリ向け)。空間データには spatial インデックス、範囲/等価には range インデックス を用途で選ぶ。

4.1.2RU コストの把握と統合キャッシュ

クエリやポイント操作の RU 消費 は応答ヘッダー(x-ms-request-charge)や クエリメトリクス で取得し、コストの高いクエリを特定して最適化する。読み取りが非常に多くデータがあまり変わらないワークロードでは Cosmos DB 統合キャッシュ(integrated cache) を使い、専用ゲートウェイ(dedicated gateway) 経由でポイント読み取りやクエリ結果をキャッシュして RU を大幅に削減する(結果整合の許容が前提)。「読み取り多で RU を下げたい」=統合キャッシュ、「クエリのコストを知りたい」=request charge/クエリメトリクス、が定石。

続きは無料登録で読めます

冒頭を無料で公開中。無料登録でこの節の全文と、第4章以降を含む全参考書・全問題集が読めます。