数据库管理员告诉我,在使用T-SQL时:
select count(id) from tableName
比...更快
select count(*) from tablenName
如果id是主键。
推广到LINQ-TO-SQL上,下面的表述是否准确?
LINQ-to-SQL语句如下:
int count = dataContext.TableName.Select(primaryKeyId => primaryKeyId).Count();
比起这个,它的性能更强大:
int count = dataContext.TableName.Count();
count(1)
也可能更好。然而,关于你最后的“更高效”的问题 - 你试过了吗?特别是,捕获两个查询使用的SQL,看看是否不同。如果确实不同,启用stats-io等方式运行两种方法。 - Marc Gravell