2

我有一个 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 吗?

4

1 回答 1

1

它在后续调用中运行得更快吗?这可能只是第一次出现问题。看看这个链接。

http://www.dotnetspark.com/kb/3706-optimizing-performance.aspx

于 2012-06-20T05:03:44.303 回答