为了账号安全,请及时绑定邮箱和手机立即绑定

Linq结果集性能的疑问

Linq结果集性能的疑问

慕的地8271018 2018-08-10 08:10:05
如代码1,先把数据ToList()到结果集中,然后再用sum函数。这样不会产生对数据表的sum聚合算法,而是在结果集中sum.这样是不是比代码2直接在数据库中sum性能要好呢? 代码1var query = (from x in db.Course                  select x.Score).ToList();               int  sum = (decimal)query.Sum(); 代码2var query = from x in db.Course                              select x.Score;               int  sum = (decimal)query.Sum();
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

在数据库中count完再出结果肯定是比把结果都select出来再在内存中count要快(想象一下你有10000条数据,网路传输和内存占用消耗),如果你只需要一个count结果,那肯定是在数据库中执行再获取结果的。如果你除了count数,还需要对这些数据做一些操作(比如读取,更新等等),那肯定是先都select出来再count。

查看完整回答
反对 回复 2018-08-13
?
千巷猫影

TA贡献1829条经验 获得超7个赞

第一种写法把数据全部选出来了再计算,第二种是在数据库中计算,所以第二种性能好一些。

查看完整回答
反对 回复 2018-08-13
  • 2 回答
  • 0 关注
  • 536 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信