假设我有一个ID列表
,获取大量文档的“最佳”方法是什么?我知道我可以尝试各种各样的东西但是在小规模上可能所有选项都有类似的性能。到目前为止,我没有尝试任何东西 - 只需阅读文档
也许没有“最佳”方式,但各种方法之间的权衡取舍(速度,成本,整体吞吐量......)
叹息 - 我知道这会被投票 - 按照“你有什么尝试”,“我们不会为你编写代码”等等。我不能进行有意义的性能分析直到我同时有数千个并行请求在数TB的数据上。我发誓,我不是懒惰或不愿意投入工作,只是不想投入生产,发现我有性能问题,然后被告知'为什么你这样做呢?'答案 0 :(得分:2)
关于使用DocumentDB执行读取的最佳方法的一些常规技巧。
ReadDocumentAsync
将是使用partition key
和id
分别获取文档的多个线程中执行此操作的最佳方式。每次读取每1KB文档为1 RU,在p99下为10 ms。SELECT * FROM c WHERE c.partitionKey = 'pk' AND c.id IN ('1','2',..., 'N')
之类的查询将更有效,即来自客户端的连接更少,服务器端的RU也更少(通常每个文档<1 RU)返回)。