6

最近我開始學習實體框架。實體框架查詢速度

在我的腦袋

第一個問題是:

當我們要使用LINQ到EF獲取數據,這樣每個查詢:

var a = from p in contacts select p.name ; 

將轉換到這樣的SQL命令:

select name from contacts 
  1. 這是否每次我們查詢時間將重複?
  2. 我聽說存儲過程被緩存在數據庫中,這個事件是否發生在實體框架中的LINQ查詢中?

最後我的問題清楚了嗎?

+0

http://www.codeproject.com/KB/linq/performance_comparisons.aspx http://www.codeproject.com/KB/linq/LINQquery.aspx http://dotnetkicks.com/architecture/Performance_comparison_between_Linq_NHibernate_and_Stored_Procs http: //geekswithblogs.net/iupdateable/archive/2009/03/17/linq-to-sql-and-linq-to-entities-entity-framework-performance.aspx – 2011-03-28 12:31:26

回答

5

有優化的各種製成,無論是在LINQ表達式緩存,哪些SQL服務器選擇緩存,唯一的辦法就是衡量廣告效果的速度和內存消耗

要查看SQL創建你可以使用我發現很好的http://efprof.com/。你可以通過SQL分析器得到這個信息的一些,這只是更多的工作。

7

我認爲linq查詢每次要執行時都要進行轉換。爲了提高性能,您可以使用compiled queries

+0

編譯查詢在EF中可用,對不對? – Shahin 2011-03-28 12:28:17

+3

是的:http://msdn.microsoft.com/zh-CN/library/system.data.objects.compiledquery.aspx – 2011-03-28 12:29:44