Я работаю в приложении MVC, а бэкэнд - Azure Cosmo db. У меня есть большие значения в Cosmo DB. Моя заявка основана на графическом представлении баллов. Таким образом, он содержит несколько фильтров на основе даты, месяца или года. Проблема заключается в том, что когда я фильтрую данные по месяцам (выборка данных за один месяц) или по году, для извлечения данных требуется слишком много времени.
`for (int i = 1; i < yearDays; i++)
{
var dateofOccurance = DateTime.Now.AddDays(-yearDays + i);
after = DateTime.Now.AddDays(-yearDays + i);
string dateePrev = fp.DateofOccurance.ToString("yyyy-MM-dd") + "T00:00:00";
string dateeAfter = after.ToString("yyyy-MM-dd") + "T23:59:59";
var query= "SELECT AVG(c.Score) as Score, AVG(c.Amount) as Amount FROM c
WHERE c.DeviceId =" + Id + " AND c.DateTimeStamp > \'" + dateePrev + "\' AND c.DateTimeStamp < \'" +
dateeAfter + "\'";
IEnumerable<Data> data= await GetItemsAsync(query: query);
}
public async Task<IEnumerable<Data>> GetItemsAsync(string queryString)
{
try
{
var query = this._container.GetItemQueryIterator<Data>(new QueryDefinition(queryString));
List<Data> results = new List<DataPoint>();
while (query.HasMoreResults)
{
var response = await query.ReadNextAsync();
results.AddRange(response.ToList());
}
return results;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
`
Это займет слишком много времени. Почти 80 тысяч записей будут загружаться в месяц. Есть какое-нибудь решение для увеличения скорости или получения данных одним запросом?