性能比较Sql查询和Linq数据查询

时间:2016-08-23 08:13:11

标签: c# sql sql-server linq

我对使用c#编程语言环境操纵数据有两点看法。

  1. select * from where ...)使用sql查询并获取数据。
  2. select * from)获取所有数据并在对象列表上使用Linq查询。
  3. 对于大尺寸或平均尺寸数据,这些意见的性能差异是什么?我可以同时使用它们吗?

3 个答案:

答案 0 :(得分:5)

性能的一般答案是问题是对您的数据进行尝试,看看哪个更好。

但是,在您的情况下,有一个正确的答案:在数据库中完成工作。

过滤数据库中的数据(使用where)有两个好处。首先,它减少了从数据库发送到应用程序的数据量。这几乎总是一场胜利(除非几乎所有行都被退回)。

其次,它允许数据库优化查询,使用(例如)可用索引来加速查询。

答案 1 :(得分:1)

个人 - 如果您可以减少从数据库中吸入内存的数据量,那么就这样做。为什么下载10M记录,当你需要100k时...然后使用linq进行更多改进以简化可能使用当地条件等。对于小数据你可以尝试两种 - 虽然取决于你的linq连接到对象的方式,你仍然可以执行sql无论如何,所以......

答案 2 :(得分:-2)

我假设您在这里谈论 LinqToSql ,结果查询是等效的。如果是这种情况,性能方面的唯一区别是 LinqToSql 将c#表达式树转换为SQL查询的开销。并且它非常严重,因为该过程涉及使用反射和转换树的复杂逻辑的数据库提供程序。