Azure cosmosdb DocumentDB添加ORDER BY子句时使用了过多的RU

Azure cosmosdb DocumentDB添加ORDER BY子句时使用了过多的RU,azure-cosmosdb,Azure Cosmosdb,我有一个分区集合,在一个特定分区中有大约4000k个文档。理想情况下,这将更加分布式,但出于事务考虑,我需要在同一分区中处理所有文档。我有一个查询,其中包括分区键和文档id,使用率为2.58%,返回速度很快 此查询是动态的,可以构造为具有IN子句来搜索多个文档ID。因此,我添加了一个ORDER BY,以确保结果的顺序一致,但添加该条款后,RUs的数量猛增至近6000!考虑到WHERE子句应该在排序之前将结果过滤到一小部分,我对这些结果感到惊讶。它几乎像是在WHERE子句之前应用orderby,这

我有一个分区集合,在一个特定分区中有大约4000k个文档。理想情况下,这将更加分布式,但出于事务考虑,我需要在同一分区中处理所有文档。我有一个查询,其中包括分区键和文档id,使用率为2.58%,返回速度很快

此查询是动态的,可以构造为具有IN子句来搜索多个文档ID。因此,我添加了一个ORDER BY,以确保结果的顺序一致,但添加该条款后,RUs的数量猛增至近6000!考虑到WHERE子句应该在排序之前将结果过滤到一小部分,我对这些结果感到惊讶。它几乎像是在WHERE子句之前应用orderby,这肯定是不正确的。在ORDER BY子句的封面下有什么东西可以解释这种行为吗

示例文件:

{DocumentType:InventoryRecord,PartitionKey,字符串id:7867f600-c011-85c0-80f2-c44d1cf09f36,DocDB分配的GUID,存储为字符串ItemNumber:123345,字符串ItemName:Item1 String}

使用如下所示的查询:


从c中选择*其中c.DocumentType='InventoryRecord'和c.id='7867f600-c011-85c0-80f2-c44d1cf09f36'按c.ItemNumber排序

您至少应该为ItemNumber设置范围索引。这应确保按预期进行订购。在索引策略中添加的内容如下所示

{ 路径:/ItemNumber/?, 索引:[ { 种类:射程,, 数据类型:String, 精度:-1 } ]
}

您应该提供如何使用数据结构。您所问的问题过于笼统,您将订单应用于哪种类型的属性?是数字还是字符串?请发电子邮件给我好吗AskCosmosDB@microsoft.com或者提交一张支持票供团队调查?很公平,基本模型如下所示:{DocumentType:InventoryRecord,PartitionKey,字符串id:7867f600-c011-85c0-80f2-c44d1cf09f36,DocDB分配的GUID,存储为字符串ItemNumber:123345,字符串ItemName:Item1 String}查询如下:从c中选择*其中c.DocumentType='InventoryRecord'和c.id='7867f600-c011-85c0-80f2-c44d1cf09f36'按c排序。ItemNumber@kris请编辑您的问题,以包括您的数据架构和查询,而不是放在注释中。通过正确的格式和缩进,使阅读更容易在…上