Cosmos DB-性能降低问题

时间:2019-10-10 13:06:48

标签: azure-cosmosdb azure-cosmosdb-sqlapi

这些天来,在我们的cosmos数据库中,我们有未分区的集合,并且最近将我们的应用程序数据移到了分区的集合中,以克服单个分区的10GB上限。

引入分区之后,我们几乎没有注意到。

  1. ResourceResponse.ContentLocation属性返回null。 (通常会以非分区集合的形式返回集合路径,例如“ dbs / developmentdb / colls / accountmodel”作为值)

  2. 用于“ GetAll” 查询(在分区和非分区集合中都提供相同的数据)

    • RU上升(从400RU上升到750RU)
    • 响应时间慢

以下提供的代码供您参考。感谢您减少RU并提高响应时间(OR)的任何建议,这些都是转移到分区集合的开销吗?请建议

使用的示例代码:

                var docClient = await _documentClient; 
                var docDb = await _documentDatabase;   
                var docCollection = await _documentCollection;

                var queryFeed = new FeedOptions()
                {
                    MaxItemCount = -1,
                    MaxDegreeOfParallelism = -1,
                    EnableCrossPartitionQuery = true
                };

                var documentCollectionUri = UriFactory.CreateDocumentCollectionUri(docDb.Id, docCollection.Id);

                IDocumentQuery<T> query = docClient.CreateDocumentQuery<T>(documentCollectionUri, queryFeed).AsDocumentQuery();

                while (query.HasMoreResults)
                {
                    var page = await query.ExecuteNextAsync<T>();
                    result.AddRange(page);

                    _rULogHelper.LogFromFeedResponse(page, docDb.Id, docCollection.Id, DBOperationType.GET.ToString()); //custom logging related code
                }

0 个答案:

没有答案