Cosmos DB の9つのクエリ性能改善方法
元記事:Troubleshoot query performance for Azure Cosmos DB
- DBとクライアントは同じリージョンに配置する。
- 一貫性レベルを確認する。
許容できる一貫性レベルを確認する。 - ログクエリ情報を使用する。
QueryMetricsを使用して、遅い・重いクエリを直す - Query Optionの調整
クエリ性能はリクエストのFeed Optionパラメータで調整できる
Max Degree of Parallelism (-1)
Max Buffered Item Count (-1)
Max Item Count (-1)
比較するときとは、2,4,8,16のような値を使用する - コンテナーからすべての結果を読む
全ての結果を取得できるまで取得し続けてください。
継続トークンがある間は取得し続ける。 - インデックスを使用できるシステム関数を選ぶ
文字列範囲に変換できる式は、インデックスを使用できます。
STARTSWITH / LEFT / SUBSTRING - JOIN式の最適化
JOIN式は大きなクロス積に拡張できます。
可能であれば、フィルタをして狭い範囲に対してクエリを実行します。 - order by の最適化
order by 性能は、分散度が低い列かインデックスポリシーがない列だと、性能劣化します。 - 多くの大きなItemを読み込んだり実行する
時間とRUsは、レスポンスサイズとクエリ処理の作業量に依存します。