我正在向分區DocumentDB集合發出如下所示的請求。該集合是爲未來目的而分區的,但此時分區鍵只有單一值。爲什麼分區DocumentDB集合中總會有「往返」?
{ "query": "SELECT * FROM r where r.id = @id", "parameters": [ {"name": "@id", "value": "4a97b4fe-cbf7-4e7c-be50-e90d3ce7bc14"} ] }
第一頁返回空一些x-ms-continuation
爲#PKRID:1
。當我瀏覽指定不同的x-ms-continuation
標題的下一頁時,最終正確的身體將返回(第16頁)。看起來這在DocumentDB門戶中被稱爲「往返」,因爲每個分頁都需要網絡往返。
問題:
這是正常的行爲呢?查詢是指定「ID」,所以它應該能夠從索引瞬間獲取記錄,我想。如果我沒有記錯的話,當我把這個集合作爲單獨的分區時,它確實在第一頁得到了結果。
如果是(不幸)DocumentDB的正常行爲,我該怎麼做才能減輕往返效應?指定
x-ms-max-item-count
到1000這樣的大數目沒有任何影響。同樣的記錄仍然在第16頁返回。 (作爲事實上,看來這個集合中的每個記錄在返回頁面16 ...)
作爲補充信息,索引的政策是這樣的:
{ "indexingMode": "consistent", "automatic": true, "includedPaths": [ { "path": "/*", "indexes": [ { "kind": "Range", "dataType": "Number", "precision": -1 }, { "kind": "Range", "dataType": "String", "precision": -1 }, { "kind": "Spatial", "dataType": "Point" } ] } ], "excludedPaths": [] }