Для проекта я рассматриваю использование Cosmos DB (SQL API) в качестве решения для своей базы данных. Читая документы о блоках запроса, я узнал здесь и здесь , что чтение 1 элемента размером 1 КБ занимает 1 RU (блок запроса).
Когда я выполняю запрос ниже (где я запрашиваю все элементы в пределах одного раздела (пол - PartitionKey), я получаю результат в 5000 единиц (пять блоков по 1000 единиц). Каждый элемент равен 1,5 КБ. по размеру, поэтому должно быть даже больше, чем 1 RU на элемент. Однако заголовок утверждает, что RequestCharge
всего 88,12, для 1000 элементов. Следуя правилу 1 RU на элемент размером 1 КБ, на который я ожидал не менее 1000 RU.
Кто-нибудь знает, как правильно интерпретировать RequestCharge
?
Код и запрос:
public async Task<List<Profile>> GetAllProfilesByGender(string gender)
{
var container = GetContainer();
var queryIterator = GetQueryIterator(container, gender);
var profiles = new List<Profile>();
while (queryIterator.HasMoreResults)
{
var resultSet = await queryIterator.ReadNextAsync();
foreach (var profile in resultSet)
{
profiles.Add(profile);
}
}
return profiles;
}
private FeedIterator<Profile> GetQueryIterator(Container container, string gender)
{
var query = new QueryDefinition($"SELECT * FROM c WHERE c.Gender = '{gender}'");
return container.GetItemQueryIterator<Profile>(query);
}