没有结果时,DocumentDB请求收费

时间:2017-12-03 10:45:40

标签: azure azure-cosmosdb

我希望来自CosmosDB团队的人能够澄清这一点。

例如,如果我们看一下官方的“性能提示”中的示例:

IDocumentQuery<Document> query = (from doc in client.CreateDocumentQuery(colSelfLink) where doc.Id == "myId" select document).AsDocumentQuery(); 
            Document myDocument = null;
            while (query.HasMoreResults)
            {
                FeedResponse<Document> res = await query.ExecuteNextAsync<Document>();
                if (res.Count != 0) {
                    myDocument = res.Single();
                    break;
                }
           }

参考:https://azure.microsoft.com/en-us/blog/performance-tips-for-azure-documentdb-part-1-2/

ref2:https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips

在上面的示例中,如果我们假设查询没有返回任何结果,则意味着HasMoreResults从开头就是假的,2个问题:

  1. 如果ExecuteNextAsync根本没有运行,是否需要收费? (因为HasMoreResults总是假的)?

  2. 如果对问题1)的回答是“是”,那么如何获得该请求?

1 个答案:

答案 0 :(得分:2)

第一次调用Long实现总是返回SSRRepository Long,因此ExecuteNextAsync将始终至少执行一次。每个查询都提交给服务器,并产生最小的RU费用。