none
Entity Framework 5的效能問題 RRS feed

  • 問題

  • 各位好,我使用Entity Framework 5做一些簡單的查詢測試時發現效能比用傳統的ADO.NET慢了約10倍

    using(var db =new SaleTicketContext())
    {
    	var tmp = (from p in db.dtblMembership where p.MEMBER_NO == 1 select p.MEMBER_NAME).First();
    	Console.WriteLine(tmp.ToString());
    }

    以上程式碼要花費500多ms,但用SqlCommand的ExecuteScalar只要50ms(SQL語法為select MEMBER_NAME from dtblMembership where MEMBER_NO=1)

    ,可笑的是dtblMembership這個table只有4筆資料而已,為什麼會這樣呢?

    PS.我是照這個教學影片建立edmx檔的

    http://msdn.microsoft.com/en-us/data/jj591506

    2013年1月28日 下午 01:13

解答

  • 這很可笑嗎?

    你要不要看看這個系列文:http://www.dotblogs.com.tw/regionbbs/Tags/ORM/default.aspx

    Entity Framework 本身是 ORM Framework,一個 ORM Framework 要做多少轉換,對應和處理才能讓資料庫內的資料到達物件你知道嗎?


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure


    2013年1月28日 下午 01:50
    版主
  • 如果要比較效能, 要立於相同的基準點, 一個是離線作業, 一個是連線作業, 比較基準不同, 比較結果也沒有意義, 您可以看一下這一篇比較:ado.net entity framework performance comparison
    2013年1月29日 上午 06:25

所有回覆

  • 這很可笑嗎?

    你要不要看看這個系列文:http://www.dotblogs.com.tw/regionbbs/Tags/ORM/default.aspx

    Entity Framework 本身是 ORM Framework,一個 ORM Framework 要做多少轉換,對應和處理才能讓資料庫內的資料到達物件你知道嗎?


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure


    2013年1月28日 下午 01:50
    版主
  • 如果要比較效能, 要立於相同的基準點, 一個是離線作業, 一個是連線作業, 比較基準不同, 比較結果也沒有意義, 您可以看一下這一篇比較:ado.net entity framework performance comparison
    2013年1月29日 上午 06:25
  • 我看了一下這篇文章:

    http://www.devproconnections.com/article/entity-framework/entity-framework-5-143875

    EF5不用自己去寫CompiledQuery會自己做預編譯的動作(而且我是用DBContext也無法直接用),所以同樣的查詢第一次執行500多ms第二次就算換個參數也只要5ms和ADO.NET一樣快。




    2013年1月30日 上午 05:20