使用 ExecuteNextAsync returns 少于 MaxItemCount 查询 Azure DocumentDB
Querying Azure DocumentDB with ExecuteNextAsync returns fewer than MaxItemCount
我正在使用 FeedOption MaxItemCount 查询 Azure DocumentDB 集合以设置 "page" 大小和 IDocumentQuery<T>::ExecuteNextAsync<T>()
。当使用较小的值(例如 <100)调用它时,针对一组 10,000 个文档,我始终取回我设置为限制的对象数。
但是,当我使用更大的 MaxItemCount 值(比如 500)执行时,我得到了各种结果,但绝不会超过 MaxItemCount。
现在,我很欣赏 MaxItemCount 是一个 "max item count" 但我从文献中了解到边界因子是集合中对象的数量。其他因素显然限制了我的结果,我们也可以在 Azure 门户的文档资源管理器和查询资源管理器工具中看到相同的行为。
集合设置为 "S3",应该支持 2500RU,查询资源管理器显示 "cost" 小于 100RU。
有人知道这里发生了什么吗?是什么限制了我的结果集?
查询在 DocumentDB 上执行的时间有限制。这些限制包括查询的资源消耗(您可以将其与预配置的数量 RU/sec * 5 秒 + 未公开的缓冲区相结合)、响应大小 (1mb) 和超时(5 秒)。如果达到这些限制,则可能会返回部分结果集。
我正在使用 FeedOption MaxItemCount 查询 Azure DocumentDB 集合以设置 "page" 大小和 IDocumentQuery<T>::ExecuteNextAsync<T>()
。当使用较小的值(例如 <100)调用它时,针对一组 10,000 个文档,我始终取回我设置为限制的对象数。
但是,当我使用更大的 MaxItemCount 值(比如 500)执行时,我得到了各种结果,但绝不会超过 MaxItemCount。
现在,我很欣赏 MaxItemCount 是一个 "max item count" 但我从文献中了解到边界因子是集合中对象的数量。其他因素显然限制了我的结果,我们也可以在 Azure 门户的文档资源管理器和查询资源管理器工具中看到相同的行为。
集合设置为 "S3",应该支持 2500RU,查询资源管理器显示 "cost" 小于 100RU。
有人知道这里发生了什么吗?是什么限制了我的结果集?
查询在 DocumentDB 上执行的时间有限制。这些限制包括查询的资源消耗(您可以将其与预配置的数量 RU/sec * 5 秒 + 未公开的缓冲区相结合)、响应大小 (1mb) 和超时(5 秒)。如果达到这些限制,则可能会返回部分结果集。