BT

InfoQ ホームページ ニュース Entity Framework 5 - パフォーマンスの考慮事項

Entity Framework 5 - パフォーマンスの考慮事項

ブックマーク

原文(投稿日:2012/04/10)へのリンク

Entity Framework (EF) 5はEF 4と比べて大幅にパフォーマンスを改善すると約束されているが、ORMを効率良く使うには、ビュー生成、キャッシュ、自動コンパイルクエリ、クエリ実行オプション、設計時の配慮など、考慮すべきことがある。

これに関連して、Microsoftはホワイトペーパーをリリースした。ここにはまだリリースされていないEntity Framework 5を使ったときのパフォーマンスの考慮事項について、いろいろと説明されている(今度の.NET 4.5で動作する)。

見ておくべき興味深いポイントを以下にあげる。

  • コールド対ウォーム クエリ実行 – クエリの初回実行時には、オーバーヘッドとなるビュー生成ステップ(データベーススキーマを概念スキーマにするのに必要な変換など)がある。 – それ以後の実行はビューキャッシュによって高速化される。ビューを事前生成することで、パフォーマンスを改善できる可能性がある。
  • キャッシュ – オブジェクトレベルにおける(具体的にはAutoDetectChangesを無効にすることと合わせてDbContext Find()を改善)、クエリ計画のキャッシュ、メタデータのキャッシュ、リザルトのキャッシュ。EFにはまだセカンドレベルキャッシュがないが、その実装指針は存在する。CodePlexにあるサンプルとJulia Lerman氏の記事 “Second Level Caching in Entity Framework and Windows Azure”を参照。
  • NoTrackingクエリのオプション(状態トラッキングのオーバーヘッドがない)。これはObjectQueryにのみ使え、DbSetやDbQueryクラスには使えない。
  • 高速なMicro-ORMスタイルの、DatabaseのSqlQueryExecuteStoreQuery
  • 設計時の配慮 – TPH (Table-per-hierarchy) 対 TPT (Table-per-Type) 対 TPC (Table-per-Class)。結果得られるクエリの複雑さとパフォーマンスの観点からはTPTが最悪だ。
  • Lazy 対 Eager ローディング

Entity FrameworkはMicrosoftが無償提供している.NETアプリケーション向けの商用ORMだ。.NET開発者向けにはEF以外にも、(オープンソース、商用含め)NHibernateLightSpeedのような成熟した製品、Dapper.NET, PetaPocoMassiveのような軽量なMicro-ORMが利用可能だ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。