我有一个ASP.NET MVC 4应用程序,我正在使用EF。我有一个表和一个SQL视图(该视图显示该表中的行加上一些不重要的数据(~1000条记录)),有大约400.000条记录。 当我在EF中显示数据时需要25秒
MVCAppEntities db = new MVCAppEntities();
public ActionResult Index()
{
return View(db.vvItem.OrderBy(n => n.Code).Skip(20).Take(40).ToList());
}
在SQL Server Management Studio中,此查询需要0-1秒
select code, quantity, name, price
from (
select *,
row_number() over(order by code) as rn
from vvItem
) as T
where T.rn between 20 and 40
问:为什么EF查询这么慢?我应该制作一个SP来做Skip and Take吗?
答案 0 :(得分:1)
在后续通话中运行得更快吗?这可能只是第一次问题。看看这个链接。
http://www.dotnetspark.com/kb/3706-optimizing-performance.aspx