#azure-cosmosdb #azure-cosmosdb-sqlapi
Вопрос:
У меня есть перекрестный запрос, который я выполняю в Cosmos, и я нахожу, что при запуске из кода он совершает гораздо больше обходов, чем при запуске на портале Azure. На портале запрос выполняется только один раз в оба конца, но при использовании кода требуется 80 поездок туда и обратно. Я использую последний пакет cosmos nuget (Microsoft.Лазурь.Космос 3.21.0). Я выполняю идентичный запрос в одном и том же контейнере, поэтому кажется, что запросы должны вести себя аналогично. В запросе содержится 19 результатов, поэтому проблема с подкачкой результатов не возникает.
var iterator = myContainer.GetItemQueryIterator< myType>($"SELECT * FROM U WHERE contains(U.un, 'Steve')", requestOptions: new QueryRequestOptions() { MaxConcurrency = 0, MaxItemCount = -1 }); int count = 0; while (iterator.HasMoreResults) { count ; var response = await iterator.ReadNextAsync(); } Console.WriteLine($"Took ${count} round trips");
Могу ли я что-нибудь сделать, чтобы уменьшить количество обходов, выполняемых запросом? Я поиграл с несколькими вещами в QueryRequestOptions, но не могу найти ничего, что повлияло бы на это.
Комментарии:
1. Что вы имеете в виду под
roundtrips
этим ? Сколько данных возвращается на портал?2. Поездки туда и обратно = вызовы в базу данных, я вижу в Fiddler, что код запускает много запросов к БД. Портал возвращает те же данные (19 результатов, около 14 КБ данных) и сообщает, что для этого потребовался 1 рейс туда и обратно.
3. Каково использование RU для запроса и как вы измеряли поездки туда и обратно с портала?
4. Стоимость составляет около 2200 рублей, и портал буквально сообщает вам количество обходов в статистике запросов.
5. Я не вижу этой метрики в статистике моих запросов. Единственный способ, которым я вижу обходные пути, — это проверка моей вкладки «Сеть» и подсчет
POST
запросов. Однако 80 поездок туда и обратно кажутся чрезмерными. Даже для минимально возможных RU/s, если только он не находится под большой нагрузкой и большинство запросов не приводят к429
.