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数据库端执行计数.好多了.

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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...