Azure 从DocumentDb读取整个对象是否更快、更高效?

Azure 从DocumentDb读取整个对象是否更快、更高效?,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我试图理解从Azure DocumentDb读取整个文档是否比读取可能包含多个对象的属性更有效 让我们以这个basketball team对象为例: { id: 123, name: "Los Angeles Lakers", coach: "Byron Scott", players: [ { id: 24, name: "Kobe Bryant" }, { id: 3, name: "Anthony Brown" }, { id:

我试图理解从Azure DocumentDb读取整个文档是否比读取可能包含多个对象的属性更有效

让我们以这个basketball team对象为例:

{
   id: 123,
   name: "Los Angeles Lakers",
   coach: "Byron Scott",
   players: [
      { id: 24, name: "Kobe Bryant" },
      { id: 3, name: "Anthony Brown" },
      { id: 4, name: "Ryan Kelly" },
   ]
}

如果我只想获得一份球员名单,那么阅读整个团队文档(我可以从中提取球员)是更高效/更快,还是发送SQL语句并尝试从文档中仅读取球员更好?

只返回球员在网络上会更高效,因为您返回的数据更少。而且,您还应该能够查看为查询而烧掉的请求单元

例如,我将您的文档放入我的一个集合中,并在门户中运行了两个查询(如果您执行相同的操作,并查看门户的底部,您将看到生成的请求单位成本)。我使用唯一ID和引号稍微修改了您的文档,因此我可以通过门户加载它:

{
   "id": "basketball123",
   "name": "Los Angeles Lakers",
   "coach": "Byron Scott",
   "players": [
      { "id": 24, "name": "Kobe Bryant" },
      { "id": 3, "name": "Anthony Brown" },
      { "id": 4, "name": "Ryan Kelly" }
   ]
}
我首先选择了just player数据:

SELECT c.players FROM c where c.id="basketball123"
RU成本为2.2:

然后我要求提供整个文件:

SELECT * FROM c where c.id="basketball123"
RU成本为2.24:


注意:您的文档大小非常小,所以这里的差别不大。但至少您可以看到,返回一个子集的成本比返回整个文档的成本要低。

非常感谢David多花了一点时间让我知道成本。我只关注阅读文件的速度和效率。