2016-11-07 50 views
0

我創建了2個空的documentDB集合:1)使用單分區,2)使用多分區。接下來在這兩個集合上插入一行並運行掃描(從c中選擇*)。我發現單個分區佔用了〜2RU,而多分區佔用了大約50RU。這不僅僅是RU,而且多分區的讀取延遲大約慢了20倍。那麼,跨分區查詢時,多分區的讀取延遲總是很高?跨分區查詢時DocumentDB讀延遲

+0

你可以顯示你的代碼來查詢兩個集合嗎? –

回答

1

對於多分區集合,您可以獲得與單分區集合相同的延遲。讓我們掃描的例子:

  • 如果你有非空的集合,那麼性能 將是相同的數據從一個分區讀取。數據從第一個分區讀取,並按順序在分區之間分頁。
  • 如果您使用MaxDegreeOfParallelism選項,則會得到相同的低延遲時間 。請注意,查詢執行默認情況下是串行的,按 的順序進行優化,以針對具有較大數據集的查詢進行優化。如果使用 並行性選項,則查詢將具有相同的低延遲
  • 如果使用分區key = value上的篩選器進行掃描,則即使沒有並行性,也可以獲得相同的性能。

的確,在查詢過程中每個分區都有一個小的RU開銷(每個分區約2個RU用於查詢解析)。請注意,這不會隨查詢大小而增加,即,即使您的查詢返回1000個文檔,則查詢將爲1000 + P * 2個RU用於分區集合,而不是1000個RU。您可以通過在分區鍵上包含過濾器來消除這種開銷。