2011-07-19 10 views
0

私はC#、Linq、EF4を使用します。Linqと匿名タイプを使用するとパフォーマンスが向上しますか?

私は自分のウェブサイトのフロントエンドを持っています。自分のウェブページに自分のデータベースからデータを表示する必要があります。

ユーザーに高速な(読み取り専用の)結果を得るために何が役立つかを知りたいと思います。

ここにいくつかのアイデアを実装すると思います。

  • A - Linqと匿名タイプを使用するので、私は表示する必要がある財産(EFを使用)を選択してメモリを節約できます。これがスピードを上げるかどうか教えてください。
  • B - クエリをあらかじめコンパイルしています。
  • C - EF内の自分のオブジェクトのBojectContextのオプションをオフにします。

点Aについて特別に考えてください。助けてください!

+0

imho、実際にはSQL + PetaPocoやDapperを打つことはありません... –

答えて

2

機能があり、最適化が必要な場合は、最初のステップは測定することだと思います。最初のステップとして、SOのプロファイラを使用してアプリが時間を消費している場所を確認してください。http://code.google.com/p/mvc-mini-profiler/

測定したら、A、B、Cで試してみてください。 (コメントに応答して)


更新(EFの最適化のための私自身のお気に入りのエリアは、怠惰なロードされたサブオブジェクトである):正直なところ、私は、BまたはCはあなたにかなりの時間を得ることを期待していない - あなたは測定が必要です - 最適化がどこで行えるかを知る唯一の方法です。一度あなたがそれを測定したら、私の推測は、A、B、またはCのどれもあなたにすべての重要な時間を節約しないということです。

+0

ご意見ありがとうございます。実装したい3つのソリューションについてご意見をお聞かせください。あなたの経験で何が一番うまくいくのでしょうか?これにお時間をいただきありがとうございます! – GibboK

+0

私は自分の意見でアップデートを追加しました.Jananthaとは異なり、A、B、またはCのいずれも「素晴らしい」メリットはないと思います – Stuart

0

私はすべてのあなたのAを感じ、BとCは素晴らしいですし、さらに

  1. あなたは、データベース・レベルでのインデックスを持つことができます。 SQL Serverを使用している場合は、Database Tunnigアドバイザーを使用して、データベースをチューニングすることができます。あなたはエンティティSQLを使用している場合

  2. それは私が最初のパフォーマンスを測定し、以前の応答に同意

LINQ http://blogs.msdn.com/b/adonet/archive/2008/03/27/ado-net-entity-framework-performance-comparison.aspxより少し速くなるとも http://blogs.msdn.com/b/dparys/archive/2009/04/06/improving-entity-framework-performance.aspx

0

これを読みます。それはどのメソッドが最も処理時間を使い果たしているかを示します。この問題を理解する前に、新しいものを考えるのは時間の効率的な使用ではありません。しかし、新しいものを学び、より多くのツールを手に入れることは素晴らしいアイデアです。新しいツールを使用できる適切な時期が来ます。

ANTSはパフォーマンスを測定するための優れたツールです。彼らは良いチュートリアルを持っており、14日間の無料使用、問題を見つけるのに十分な時間です。

向上が必要なものが分かったら、さまざまな改善方法を試すことができます。

関連する問題