2016-11-07 4 views
0

空のdocumentDBコレクションが2つ作成されました.1)単一パーティションで、2)マルチパーティションで作成されました。次に、これらの両方のコレクションに1つの行を挿入し、スキャンを実行しました(select * from c)。私は、単一パーティションが約2RUを占めるのに対し、マルチパーティションは約50RUを占めることを発見しました。これはRUだけではありませんが、マルチパーティションの場合、読み取りレイテンシは約20倍遅くなりました。それで、マルチパーティションは、パーティション間で照会されると常に高い読み取りレイテンシを持ちますか?DocumentDBの読み込みレイテンシがパーティション間で照会されたとき

+0

2つのコレクションを照会するコードを表示できますか? –

答えて

1

複数パーティションの収集では、単一パーティションの収集と同じ待機時間を得ることができます。あなたは非空のコレクションを持っている場合は

  • 、パフォーマンス データはパーティションの1つから読み込まれると同じになりますのは、スキャンの例を見てみましょう。データは最初のパーティションから読み込まれ、順番にパーティション間でページが分けられます。
  • MaxDegreeOfParallelismオプションを使用すると、同じ低い値の の遅延が発生します。クエリーの実行はデフォルトではシリアルであり、大きいデータセットを使用するクエリに対しては を最適化することに注意してください。 並列処理オプションを使用すると、クエリの待機時間は同じになります。
  • パーティションキー=値でフィルタをスキャンすると、並列性がなくても と同じパフォーマンスが得られます。

クエリ中に触れた各パーティション(クエリ解析用に1パーティションあたり〜2 RU)に小さなRUオーバーヘッドがあることは事実です。これはクエリサイズが大きくなるほど、つまりクエリが返された場合でも増加しません。 1000個のドキュメントの場合、クエリは1000個のRUの代わりにパーティション化されたコレクションの1000 + P * 2 RUになります。もちろん、パーティションキーにフィルタを含めることで、このオーバーヘッドを排除できます。

関連する問題