2012-03-22 5 views
0

同じトピックで同様の質問が表示されましたが、問題を解決できませんでした。ADO.NETエンティティフレームワークモデルのパフォーマンス

私はDB2バックエンドを持つasp.net Webアプリケーションを持っています。そして、我々はエンティティフレームワークモデル3.5 を持っているので、最初にページをロードすると、最初のクエリを実行するのに15秒近くかかります。また、クエリは非常に簡単で、1つのテーブルから行を選択し、where句がインデックスされます。これは私があまりにも統計を更新しようとしたクエリ

protected Detail getProgramDetail(string id1,string id2, string id3) 
{ 
    Detail result = (from d in context.Detail 
      where d.id1.equals(id1) && 
      d.id2.equals(id2) && 
      d.id3.equals(id3) 
      select d).FirstorDefault(); 
    return result; 

    } 

ですが、それはどちらか助けていませんでし。 他のパフォーマンスチューニングの記事を読んだ後、私はこのクエリをコンパイル済みのものとして作ったが、依然として15秒近くかかっていた。しかしその後の呼び出しは非常に速いです(ミリ秒単位)。私は接続を確立し、クエリを実行する時間がかかると思う。

初期性能を向上させる方法はありますか。私はビューを生成しようとしました。しかし、私は以下のエラーが表示されます。これをどう扱うかわからない。

指定されたストアプロバイダは、コンフィギュレーションで見つけることができない、または は

私の接続文字列はのmachine.configである有効ではありません。

ありがとうございます。 Srividhya

答えて

0

初期のパフォーマンスを向上させる方法はありますか。

ASp.NET/Entity FrameworkではなくIIS - アプリケーションの起動(必要なコンパイルを含む)についてはどうなりますか?)

IISを起動したときにページを呼び出すことができる拡張機能があるため、アプリケーションが熱くなっています(コンパイルされ、メモリに読み込まれています)。

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx

+0

で最初またはデフォルトの最適化を使用できる場合、それは私のパフォーマンスではなく、大幅に助けました。私たちはまだVS 2008を使用しているので、コンパイルを試すことはできません。 2番目のレベルのキャッシングを試す必要があります。 - Srividhya 29秒前編集: – Srividhya

0

あなたはこの問題

1)エンティティフレームワーク.Thisの記事を有する第2レベルのキャッシュを追加を解決するために楽しみにして複数のオプションは非常に有用あります http://msdn.microsoft.com/hi-in/magazine/hh394143(en-us).aspx

2)クエリとORMはあまりよく一緒に固執しません。パフォーマンスを最適化するストアドプロシージャとDatareaderを使用できますか?

3)あなたのコード私はDB2のためのビューを生成しなかった

+1

私はDB2のためのビューを生成しましたが、それは私のパフォーマンスを助けてくれましたが、劇的には役に立ちませんでした。私たちはまだVS 2008を使用しているので、コンパイルを試すことはできません。 2番目のレベルのキャッシングを試す必要があります。 – Srividhya

+0

@Srividhyaあなたが最初に、またはデフォルトを最適化しようとしましたか – satish

関連する問題