Azure cosmosdb Cosmos DB-性能降低问题

Azure cosmosdb Cosmos DB-性能降低问题,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,这些天来,在cosmos db中,我们拥有非分区集合&最近,我们将应用程序数据移动到分区集合中,以克服单个分区上10gb的上限 在引入分区之后,我们几乎没有注意到什么 ResourceResponse.ContentLocation属性返回null。(通常它将“dbs/developmentdb/colls/accountmodel”这样的集合路径作为非分区集合的值返回) 对于“GetAll”查询(提供在分区集合和非分区集合中维护的相同数据) 俄罗斯上升(从400俄罗斯上升到750俄罗斯) 较

这些天来,在cosmos db中,我们拥有非分区集合&最近,我们将应用程序数据移动到分区集合中,以克服单个分区上10gb的上限

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

  • ResourceResponse.ContentLocation属性返回null。(通常它将“dbs/developmentdb/colls/accountmodel”这样的集合路径作为非分区集合的值返回)

  • 对于“GetAll”查询(提供在分区集合和非分区集合中维护的相同数据)

    • 俄罗斯上升(从400俄罗斯上升到750俄罗斯)
    • 较慢的响应时间
  • 以下代码供您参考。感谢您提出的任何减少RU和提高响应时间的建议(或者这些都是迁移到分区收集的开销)?请建议

    使用的示例代码:

                    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
                    }
    
    var docClient=wait\u documentClient;
    var docDb=wait_documentDatabase;
    var docCollection=await\u documentCollection;
    var queryFeed=newfeedoptions()
    {
    MaxItemCount=-1,
    MaxDegreeOfParallelism=-1,
    EnableCrossPartitionQuery=true
    };
    var documentCollectionUri=UriFactory.CreateDocumentCollectionUri(docDb.Id,docCollection.Id);
    IDocumentQuery query=docClient.CreateDocumentQuery(documentCollectionUri,queryFeed).AsDocumentQuery();
    while(query.HasMoreResults)
    {
    var page=await query.ExecuteNextAsync();
    结果.添加范围(第页);
    _rULogHelper.LogFromFeedResponse(page,docDb.Id,docCollection.Id,DBOperationType.GET.ToString());//自定义日志相关代码
    }
    
    对于查询性能问题,本文可能会对@MatiasQuaranta有所帮助,感谢您参考msdn一般建议。通过查看上面发布的documentdb相关代码,您是否发现了缺失的内容或可以修改/包括的内容,以提高响应时间并减少RUs?请建议。如果我对非分区集合ResourceResponse.ContentLocation运行上面发布的代码,则返回值为“dbs/devdb/colls/customermodel”,这是预期值,但对分区集合ResourceResponse.ContentLocation始终返回null。有什么原因吗?请确认。注意:使用change feed将数据从非分区迁移到分区集合。对于查询性能问题,本文可能会帮助@MatiasQuaranta,感谢您参考msdn一般建议。通过查看上面发布的documentdb相关代码,您是否发现了缺失的内容或可以修改/包括的内容,以提高响应时间并减少RUs?请建议。如果我对非分区集合ResourceResponse.ContentLocation运行上面发布的代码,则返回值为“dbs/devdb/colls/customermodel”,这是预期值,但对分区集合ResourceResponse.ContentLocation始终返回null。有什么原因吗?请确认。注意:使用更改提要将数据从非分区集合迁移到分区集合。