【发布时间】:2019-08-26 03:59:25
【问题描述】:
我正在向分区 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 标头时,最终正确的正文会在 #PKRID:16 (第 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": []
}
【问题讨论】:
标签: azure-cosmosdb