EF 5、POCO オブジェクト、および SqlQuery を使用しています。オブジェクトの実体化は非常に遅く、約 20 秒かかります。SQL Management Studio を使用して SQL クエリを実行すると、クエリは約 2 秒で実行されます。(例 this.context.mytable.SqlQuery(query).AsNoTracking.ToList())
私は以前、EF 4、Generated Entities、および ExecuteStoreQuery を使用して、まったく同じ SQL クエリを使用していました。オブジェクトの具体化は、約 10 秒ほど遅くはありませんでした。
POCO を使用した場合のパフォーマンスの違いはなぜですか? 同じ遅い(20秒)結果のPOCOを使用して、DbContextからExecuteStoreQueryを使用しようとしました。
何か案は?
よろしくお願いします!
アップデート:
エンティティ クラス:
2 つのエンティティ クラス。1 つは基本クラスです。2 つの間には約 27 の列/プロパティがあり、ほとんどが基本クラスにあります。選択結果のオブジェクト数:
約 75K。ストア クエリが実行されている:
クエリは、(1=1) のビューからの選択 (列) です。使用されている API (DbContext または ObjectContext)
EF 5/POCO シナリオでは、DbContext を使用しています。
EF 4/Generated エンティティのシナリオでは、ObjectContext を使用しています。**EF 5/DbContext を使用する場合、(下位レベルの) ObjectContext および ExecuteStoreQuery メソッドにもアクセスしようとしましたが、DbContext SqlQuery と同じ遅い結果になりました。