c# - Cosmodb 查询优化
问题描述
我在 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;
}
}
`
太费时间了 每月将获取近 8 万条记录。是否有任何解决方案可以提高速度或通过一次查询获取数据?
解决方案
推荐阅读
- reactjs - 在 ReactJs 中渲染组件之前从服务器获取数据
- node.js - 首次部署期间播种参数存储的自动化
- bash - 使用文本文件中的内容复制选定的目录和文件
- linux-kernel - 如何使用 NFS 在 sama5d27-som1-ek 板上安装 Rootfs
- git - 无法从 bitbucket 管道创建拉取请求
- python - Django 不会迁移 app_label 下的多个模型?
- vue.js - 在 nuxt 中针对不同情况使用不同的环境
- amazon-web-services - 带有 aws 弹性豆茎的 Bitbucket CI/CD 管道
- css - Angular --prod 标志分解组件样式表
- acumatica - acumatica 中的此错误消息来自哪里