使用linq从azure db查询需要花费大量时间

时间:2018-03-18 17:23:35

标签: performance linq azure

我正在使用Azure数据库,我的表有超过120000条记录。 应用了10个记录页面的分页我将数据提取到IQueryable中,但是只需要大约2分钟就可以获取10条记录。此查询没有连接,只有2个过滤器。使用Azure搜索时,我可以在3秒内获得所有记录。 请建议我尽量减少我的Linq搜索,因为天蓝色的搜索费用很高。

1 个答案:

答案 0 :(得分:0)

根据您问题的评论中的查询,看起来您正在将整个数据库表读取到应用程序的内存中。数据可能从数据中心的一侧传输到另一侧,从而导致性能问题。

unitofwork.Repository<EntityName().GetQueriable().ToList().Skip(1).Take(10);

如果没有看到剩下的代码,我只是猜测你的LINQ查询应该是这样的:

unitofwork.Repository<EntityName().GetQueriable().Skip(1).Take(10).ToList();

Skip and Take应该在db服务器上执行,而.ToList()最后将实现实体。