あらゆる種類の複雑で単純な選択クエリを実行するシステムがあります。
いくつかの簡単なテストを行って、次の結果を得ました。
Query 3.9 seconds :
var result = (from temp in context.model
where temp.ID == 1302
select temp).First();
Start Transaction time: 17:54:58.7073806
End Transaction time: 17:55:02.6246046
Query 3.7 seconds :
Model modelResult = context.Model.Find(1302);
Start Transaction time: 17:53:51.1995194
End Transaction time: 17:53:54.8737295
私は最良の選択肢が何であるかを理解しようとして読んでいます。このサイトではこのトピックについて多くの会話がありますが、私は必要なものを正確に見つけられませんでした。
クエリの選択は状況に応じて(クエリの複雑さなどに基づいて)行われることは知っていますが、キーに基づいて単一のエンティティが必要な場合は、再度使用されることはありません(つまり、検索の場合、キャッシュは行われません。そのクエリが再度呼び出される可能性は非常に低いため、重要です)直接LINQを使用するか、検索を引き続き使用する方がよいでしょうか。
検索の結果を使用しないときにキャッシュするコストは高すぎますか?単純なテストの結果は、単一のエンティティ/キーの状況で検索が常に高速になると想定するのに十分正確ですか?
トレースをオフにしてLINQをテストしませんでしたが、これは2つの例よりも優れたアプローチでしょうか?