LINQ或SQL查询。什么更有效?

时间:2016-07-04 22:50:23

标签: sql sql-server linq

我有一个程序,其中包含一个数据库,其中包含有关百万条记录的人的信息。

  

其中一项任务是按出生日期过滤结果,然后按组过滤   他们按城市划分,最后将每个城市的人口与城市进行比较   给定数字。

我开始在SQL查询中编写所有内容,但后来我开始怀疑,它可能会使服务器太忙,也许最好用应用程序本身进行一些计算。

我想知道是否有任何规则/建议

  • 何时使用服务器进行计算?
  • 何时在应用程序中使用LINQ等工具?

1 个答案:

答案 0 :(得分:0)

对于此类要求,没有固定的规则或策略,它是由应用程序/业务需求驱动的,可能有所帮助的一些建议:

  • 通常情况下,Sql Query可以很好地生成大量数据,以便在过滤/分组/排序后提供较小的结果集。但是它需要
     正确的表格设计,索引优化。随着数据大小的增加,Sql可能正在执行

  • 通过网络传输数据,从托管数据库到应用程序都会导致性能下降,因为网络可能成为大瓶颈,特别是如果数据超出一定规模

  • 使用Linq2Objects的内存处理对于重复调用来说非常快,需要应用过滤器,排序数据并进行更多处理

  • 如果UI是一个富客户端,那么你可以负担得起在内存中加入大量数据并使用Linq继续处理它,它可以是内存数据结构的一部分,如果UI是Web那么您需要缓存数据

  • 为了与sql具有相同的操作,对于内存数据,对于多种类型,您需要自定义代码,最好使用表达式树和linq,否则简单的linq将用于已知的固定类型

我的一个网络应用程序中有一个类似的设计,通常它是一个组合,在大多数实际场景中效果最好