【发布时间】:2021-01-27 15:53:20
【问题描述】:
我在 cosmos db 中使用适当的分区键存储数百万个文档。我需要检索 500,000 个文档来进行一些计算并在 UI 中显示输出,这应该在 10 秒内发生。 这可能吗?我已经尝试过了,但花了将近一分钟。那么对于这种需求,这样的做法是否正确?
"id": "Latest_100_Sku1_1496188800",
"PartitionKey": "Latest_100_Sku1
"SnapshotType": 2,
"AccountCode": "100",
"SkuCode": "Sku1",
"Date": "2017-05-31T00:00:00",
"DateEpoch": 1496188800,
"Body": "rVNBa4MwFP4v72xHElxbvYkbo4dBwXaX0UOw6ZRFIyaBFfG/7zlT0EkPrYUcku+9fO/7kvca"
一个文档的大小:825 字节
我正在使用自动缩放 4000 吞吐量
查询统计信息 - 我正在使用 2 个查询。
查询 1 - select * from c where c.id in ({ids}) 这里我在查询选项中使用了 PartitionKey。
查询统计 公制 价值 要求收费 102.11 RU 显示结果 1 - 100 检索到的文档计数 更多信息 200 检索到的文档大小 更多信息 221672 字节 输出文档计数 更多信息 200 输出文档大小 更多信息 221972 字节 索引命中文档计数 更多信息 200 索引查找时间 更多信息 17.0499 毫秒 文件加载时间 更多信息 1.59 毫秒 查询引擎执行时间更多信息 0.3401 毫秒 系统函数执行时间 更多信息 0.060000000000000005 毫秒 用户定义函数执行时间 更多信息 0 毫秒 文档写入时间 更多信息 0.16 毫秒 往返 1
查询 2 -- select * from c where c.PartitionKey in ({keys}) and c.DateEpoch>={startDate.ToEpoch()} and c.DateEpoch
查询统计 公制 价值 要求收费 226.32 RU 显示结果 1 - 100 检索到的文档计数 更多信息 200 检索到的文档大小 更多信息 176580 字节 输出文档计数 更多信息 200 输出文档大小 更多信息 176880 字节 索引命中文档计数 更多信息 200 索引查找时间 更多信息 88.31 毫秒 文件加载时间 更多信息 4.2399000000000004 毫秒 查询引擎执行时间更多信息 0.4701 毫秒 系统函数执行时间 更多信息 0.060000000000000005 毫秒 用户定义函数执行时间 更多信息 0 毫秒 文档写入时间 更多信息 0.19 毫秒 往返 1
【问题讨论】:
-
没有足够的信息来回答这个问题。请在您的容器中包含示例文档、您尝试运行的查询、容器的分区键、预置的 RU/s 数量以及显示查询统计信息的数据资源管理器的输出。
-
我已经根据您的要求编辑了详细信息。
标签: azure-cosmosdb