質問: L2SとEFを比較する最近のパフォーマンスベンチマークを探していましたが、リリースされたバージョンのEFを使用して呼び出しストアドプロシージャをテストしたものが見つからなかった。それで、私は私自身のテストのいくつかを実行し、そしていくつかの興味深い結果を見つけました。 これらの結果は正しく見えますか?別の方法でテストする必要がありますか。 コンテキストの1つのインスタンス、sprocの1つの呼び出し:(デッドリンク) コンテキストの1つのインスタンス、同じsprocの複数の呼び出し:(デッドリンク) コンテキストの複数のインスタンス、同じsprocの複数の呼び出し:(デッドリンク)
回答: 起動コストと実行コストを区別するために、多少異なる方法でテストする必要があると思います。特にEntity Frameworkは、 データベースビューをコンパイルする必要があるため、かなりの起動コストがかかります (ただし、これは事前に行うことができます)。同様に、LINQにはコンパイル済みクエリという概念があります 。これは、クエリを複数回実行する場合に適しています。 多くのアプリケーションでは、クエリ実行コストは起動コストよりも重要になります。ある人にとっては、その逆が真実かもしれません。これらのパフォーマンス特性は異なるので、区別することが重要だと思います。特に、開始コストを繰り返し実行されたクエリの平均コストに平均化すると、誤解を招きます。