我遇到了一个问题,我要查询数百万条记录,这需要一段时间。该查询非常简单,但需要8到12秒的时间才能返回给我。有没有办法提高其性能?下面是我的代码:
List<Product> AllProducts;
var item = from m in db.Products
select m;
item = item.Where(s => s.Title.Contains(SearchKeyword));
AllProducts = item.ToList();
AllProducts = AllProducts.OrderBy(a => a.UPC).ToList();
return View(AllProducts);
答案 0 :(得分:1)
获取记录然后对它们进行排序会导致您犯错。在我的解决方案中,排序方法已添加到数据库查询中。数据库的排序方法比实体框架的排序方法快得多。这样您可以像这样更快地记录:
List<Product> AllProducts = db.Products.Where(s => s.Title.Contains(SearchKeyword))
.OrderBy(a => a.UPC)
.ToList();
return View(AllProducts);
另一方面,您可以将索引添加到数据库的“标题”列中。这样可以加快结果。