加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 计数在LINQ中选择 – 哪个更快?

发布时间:2020-12-12 08:46:44 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用IQueryable T在我的应用程序中的接口,并推迟在DB上执行SQL,直到.ToList() 我需要有时找到某些列表的计数,而不需要使用列表中的数据.我从SQL的经验中知道,SQL COUNT()远不如返回所有行的等效SELECT语句为DB工作. 所以我的问题是:DB的返回数量从IQue
我正在使用IQueryable< T>在我的应用程序中的接口,并推迟在DB上执行SQL,直到.ToList()

我需要有时找到某些列表的计数,而不需要使用列表中的数据.我从SQL的经验中知道,SQL COUNT()远不如返回所有行的等效SELECT语句为DB工作.

所以我的问题是:DB的返回数量从IQueryable< T>的Count()方法而不是渲染IQueryable< T>列表并调用列表的Count()方法?

我怀疑ToList()将触发SELECT sql,然后在单独的查询中计算行数.我希望Count()在IQueryable< T>只是简单地渲染sql的sql COUNT()查询.但不能肯定.你知道吗?

解决方法

调用ToList()将返回一个正确的List< T>与所有的数据,这意味着获取所有的数据.不好.

调用Count()应该确实使SQL在数据库端执行计数.好多了.

然而,检查这一点的最简单的方法是启用在数据上下文中记录(或者与您的特定提供程序相同的内容),并查看实际发送的查询.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读