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

前端之家收集整理的这篇文章主要介绍了sql – 计数在LINQ中选择 – 哪个更快?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用IQueryable< T>在我的应用程序中的接口,并推迟在DB上执行sql,直到.ToList()

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

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

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

解决方法

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

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

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

猜你在找的MsSQL相关文章