2010-12-02 23 views
3

アプリケーションの最初のクエリが実行されるとエンティティフレームワークのパフォーマンスに問題があります。約20秒かかります.SQL Serverプロファイラを使用してSQL Serverでクエリの実際の実行時間を確認すると、ミリ秒かかります。最初のクエリの他の人はOKです。エンティティフレームワークのパフォーマンス問題

クエリは非常に単純なもので、1行だけ挿入されたテーブルから選択できます.DBは約200個のテーブルで構成されていますが、インデックスやビューはありません...他にも同様の問題私は解決策を見つけることができませんでした。実際に何が起こっているかについてのアイデアはありますか?

さて、このクエリ

 DBEntities en = new DBEntities(); 

     var person= (from p in en.People 
          select p).First(); 
     this.txt1.Text = person.name; 
+0

20秒かかるのは確かですか?あなたは/クエリの結果と何かをしていますか?クエリを見ることができれば助けになるかもしれない。 –

答えて

1

SQLクエリはミリ秒がかかりますが、多分最初の実行にいくつかの時間を割いEF内のSQLを作成します。特に複雑なクエリ/モデルの場合この記事では、パフォーマンスを向上させるための事前生成方法について説明します。 Pre-Generate Views

0

データベース内のクエリがミリ秒(300未満)しかかからない場合、問題はアプリケーションにあります。トランザクションでイベントが発生したときに通知するコードとログメッセージを計測する必要があります。ネットワークの待ち時間を排除できるように、データベースの呼び出しの前後にログを記録する必要があります。最初のクエリの後に結果がキャッシュされるので、その後はすべてが高速になる可能性があります。問題は、キャッシュを設定するか、ペイロードを送信することが常に行われているかどうかです。

0

コードがパフォーマンスを殺す場所を見つけるための2つのオプション:SQL Profilerと優れたEFProf

関連する問題