获取分区计数的非常昂贵,有效的方法

时间:2018-05-01 20:46:43

标签: c# .net azure-cosmosdb

为了使jQuery DataTable正常工作,我需要包含在数据集中的总记录,然后通过DataTables中的功能进行过滤(即:每页有多少条记录,排序列,排序等等。)。

但问题是每次UI调用一页记录时,也必须返回记录总量,并且我发现它在RU方面相当昂贵。 (我现在有大约750条记录,计算每页更改的记录总数为118 RU)。事情是可能有很多页面可用。

这是我做的事情来计算:

var query = Client.CreateDocumentQuery<int>(CollectionURI, "select value count(1) from c", new FeedOptions { PartitionKey = new PartitionKey(partitionKey) })
            .AsDocumentQuery();

response = await query.ExecuteNextAsync<int>();
return response.ToList()[0];

这在性能方面起作用,但RU明智,而不是那么多。

有没有更好的方法来获得分区的大小?

1 个答案:

答案 0 :(得分:1)

SQL API SDK有一个名为CountAsync的方法,可以在内部完成所有魔法。

此类操作的定价不同,因此使用它会更便宜。