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を作成する必要がありますか?