0

実行速度が非常に遅い LINQ to Entity クエリがあります。このクエリは、特定のデータベースに対していくつかの計算ロジックを実行し、結果を ViewModel に渡します。クエリの最後に 4 つの select ステートメントを追加するまで、クエリは非常に高速でした。結果応答のコレクションを返すには、select ステートメントが必要です。クエリの実行がこのように遅いのはなぜですか?

  var data = from SurveyResponseModel in db.SurveyResponseModels
                       group SurveyResponseModel by SurveyResponseModel.MemberId into resultCount
                       select new ResultsViewModel()
                       {

                           YesBarriersOthersResult = resultCount.Select(r => r.YesBarriersOthers),
                           NoBarriersOthersResult = resultCount.Select(r => r.NoBarriersOthers),
                           TotalResponsesResult = db.SurveyResponseModels.Count(),
                       };




            return View(data);
4

1 に答える 1

3

ここで正確に何が問題なのかを説明するのは難しいですが、orms などで同様の問題に直面したので、問題をデバッグする最善の方法は、実際に生成された SQL ステートメントを見つけてデータベースに対して実行することであると提案できます。多くの場合、ORM はあまりにも多くの SQL ステートメントを実行して、同じ単純な結果を得ることができません。

于 2012-06-22T19:37:16.547 に答える