繁体   English   中英

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

[英]Performance comparison Sql query and Linq data query

对于使用c#编程语言环境处理数据,我有两种看法。

  1. select * from where ... )使用sql查询并获取数据。
  2. select * from )获取所有数据并在对象列表上使用Linq查询。

这些意见对于大尺寸或平均尺寸数据的性能差异是什么? 我可以同时使用它们吗?

性能的通用答案是要在您的数据上尝试一下,看看哪种效果更好。

但是,对于您而言,有一个正确的答案:在数据库中进行工作。

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

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

就个人而言-如果可以减少从数据库吸收到内存中的数据量,请执行此操作。 为什么要下载10M记录,当您需要100k ..然后使用linq对其进行更多优化以简化操作,也许使用本地条件等。对于小数据,您可以同时尝试两种方法-尽管根据linq与对象的连接情况,您仍然可以执行sql无论如何,所以...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM