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