我们有一个系统,可以处理各种复杂而简单的select查询。LINQ First vs查找性能考虑因素
我们做了一些简单的测试,并得到这些结果:
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
我一直在读试图找出什么是最好的选项。在这个网站上有很多关于这个话题的讨论,但是,我还没有找到我需要的东西。我知道查询选择是基于情景的(基于查询的复杂性等),但是当我们需要基于一个不会再次使用的键的单个实体时(这意味着,在Find ,缓存并不重要,因为该查询不太可能再次被调用)使用直接LINQ还是继续使用Find更好?
缓存查找结果的成本是什么时候不会使用,成本太高?我们的简单测试结果是否足够准确,以便在单个实体/关键情况下,Find始终会更快?
我没有测试LINQ关闭跟踪,这是比给出的两个例子更好的方法吗?
伟大的答案谢谢,这和Slauma的答案链接正是我一直在寻找。 – northpole