簡體   English   中英

使用具有較大結果集的實體框架5的性能問題

[英]Performance problems using entity framework 5 with large resultset

我正在使用Entity Framework 5,並且正在執行一個查詢,該查詢返回相對較大的結果集(約30,000行)。 查詢本身執行速度非常快,僅需700毫秒左右。

構建linq查詢后,我調用query.Load(); ,然后將DataContext.Set<MyType>.Local作為ObservableCollection返回給調用方。 結果顯示在可編輯的網格中。

問題出在query.Load(); 通話-大約需要60秒,這太長了。 這是EF將結果轉換成.NET對象的地方嗎? 我已經嘗試進行概要分析,但是它不會比IQueryable.Load更深入:

有什么想法可以改善績效嗎?

順便說一句,我嘗試升級到EF6看看是否有幫助,但實際上變得更糟了, query.Load(); 通常需要100秒!

在需要結果之前,不執行Linq to Entities查詢。 那時計算成本是“支付”的。 在此之前,查詢只是一個查詢。 正如Stefan所建議的那樣,您應該嘗試添加一些過濾器,或者至少使用.Skip和.Take方法添加分頁機制。

你也可以查看有關LINQ分頁MSDN文章。

希望我能幫上忙!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM