Cosmos DB - медленная проблема с производительностью - PullRequest
1 голос
/ 10 октября 2019

Все эти дни в нашей космической базе данных у нас были однораздельные коллекции, и недавно мы переместили данные нашего приложения в многораздельные коллекции, чтобы преодолеть ограничение в 10 ГБ на одном разделе.

Несколько вещей, которые мы заметили сразу после введения partitions .

  1. ResourceResponse.ContentLocation свойство возвращает значение NULL. (обычно он возвращает путь к коллекции, такой как «dbs / developmentdb / colls / accountmodel», как значение с неразделенными коллекциями)

  2. Для «GetAll» запроса (при условии, что данныеподдерживается как в многораздельных, так и в многораздельных коллекциях)

    • RU увеличилось (с 400RU до 750RU)
    • Меньшее время отклика

Для справки, включенной ниже, используется код. Цените любые ваши предложения по сокращению количества 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
                }
...