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

Q:EFクエリが非常に遅いのはなぜですか?スキップアンドテイクを行うためにSPを作成する必要がありますか?

4

1 に答える 1

1

後続の呼び出しでより速く実行されていますか? 初めての問題かもしれません。このリンクを見てください。

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

于 2012-06-20T05:03:44.303 に答える