Azure DocumentDB查询需要意外的高RU

Azure DocumentDB查询需要意外的高RU,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我有大约200MB的数据存储在S3文档集合中(最高的一个)。每个文档的大小约为300KB 但当我运行我的查询时,我惊讶地发现它需要7245.81 RUs。因为S3的速度是2500 RUs/秒,所以这种性能无法扩展到我的应用程序 我只是想问我是否做错了什么,是否有什么可以改进的地方 我的问题是这样的: SELECT item.Id,item.Priority, va.something, wa.something... 11 fields in total FROM model.Item item

我有大约200MB的数据存储在S3文档集合中(最高的一个)。每个文档的大小约为300KB

但当我运行我的查询时,我惊讶地发现它需要7245.81 RUs。因为S3的速度是2500 RUs/秒,所以这种性能无法扩展到我的应用程序

我只是想问我是否做错了什么,是否有什么可以改进的地方

我的问题是这样的:

SELECT item.Id,item.Priority, va.something, wa.something... 11 fields in total
FROM model.Item item 
JOIN va in item.Content.Children 
JOIN wa in va.Children 
WHERE item.State != 5

我使用“范围”作为索引类型。这会影响此查询的性能吗?

使用!=将需要扫描,因为必须查找所有索引项以消除不等于5的值。这将导致高RUs。如果可能,请尝试将查询重写为相等查询或范围查询

  • 如果项状态的可能值的数量有限,例如1-10,则您可以使用中枚举有效值,即(1,2,3,4,6,7,8,9,10)中的项状态
  • 如果不可能,请使用范围,如上面Larry建议的item.State>5或item.State<5
  • 希望这有帮助。请通过microsoft.com上的arramac向我发送电子邮件,以备详细讨论。

    文档中说“范围索引类型启用范围查询(使用>,=,使用)”解决了我的问题。RU下降到194.71,但是>5或<5没有帮助。非常感谢!