2010年5月26日 星期三

LINQ to Entities 的準則

使用 LINQ to entities 時,應該注意下面幾件事。

避免 ORM 的弱點

  • Bulk Loads:大量載入太多資料
  • 大量的更新:為了追蹤 entity 的狀態,會秏損效能及記憶體
  • 回傳大量entity 的查詢
  • 長時間的 ObjectContext

以上是 ORM 工具共通的毛病,如 LINQ to SQL, NHibernate。
因此,資料匯出入就不適合使用 LINQ to Entities ,除非是一筆一筆地處理。

增加效能

  • 改善查詢語法
  • 由 identity 欄位查詢單一 entity
  • 使用eager loading 及使用 Include 一次取得資料
  • 只讀取資料時,關閉物件的 tracking
  • 資料庫,考慮使用 snapshot isolation

結論

LINQ 使用了 delegate 來改善查詢語法,增加可讀性及生產力。但也因為這個原因,會讓效能變差。因此,在開發的策略必須:讓系統能運作,然後讓它變快。

沒有留言:

Share with Facebook