2016-06-15 8 views
2
なぜ(私はバージョン6.1.3を使用しています)EFからSPと呼ばれるSqlCommandオブジェクトのは、ExecuteNonQuery()& DataReaderオブジェクトの比較toSP実行時間として時間がかかるん

? SqlCommandオブジェクト/ SqlDataReaderののEFは実行に時間がかかるSP

public async Task<IList<T>> ExecSPAsync<T>(string query) 
    { 
     return await Context.Database.SqlQuery<T>(query).ToListAsync(); 
    } 
below- 私はのようなEFを使用して非同期呼び出しを作ってるんだ

使用すると、EFを使用してSPの呼び出しに比べて効率的でかなりのようです。 EFを使ってSPを呼び出す効率的な方法は何でしょうか?

+0

保存されている場合は、(n)varchar/binary(最大)が返されますが、これが原因の可能性があります。参照:http://stackoverflow.com/a/28619983/1236044 – jbl

+0

ありがとうございます。私たちがこれをやっている場所を調査する。 – vinayp

答えて

0

コードファーストを使用していますか?アプリケーションの最初のクエリですか? EFがモデルをコンパイルするまでには時間がかかります。 パフォーマンスを向上させる手順を含むこのarticleで説明しています。

+0

ありがとうございます。最初のクエリには時間がかかりますが、今はADO.NETとEFを使用してSPを実行することに関心があります。 – vinayp

+0

それはちょうど情報のためではありませんでした。あなたの懸念がEF経由で実行されているSPに関するものであれば、その複雑さのためにいつもいくつかの猶予時間が必要になります。これは内部的にADO.NETを使用し、開発者にとって使いやすいものを作るためにいくつか余分なものを追加します。純粋なADO.NETを使うことはいつもより速いですが、より多くの開発者の作業が必要です。あなたのニーズに基づいて適切なものを選ぶ必要があります。できるだけ早く材料を作る必要がある場合は、ADO.NETを使用してください。数十ミリ秒/何百ミリ秒も気にせず、使いやすいEFを選んでください。 –

+0

ありがとうVáclav.. – vinayp

関連する問題