Guy*_*Guy 4 c# t-sql performance linq-to-sql
DBA告诉我在使用T-SQL时:
select count(id) from tableName
Run Code Online (Sandbox Code Playgroud)
比...更快
select count(*) from tablenName
Run Code Online (Sandbox Code Playgroud)
如果id是主键.
将其外推到LINQ-TO-SQL以下是准确的吗?
这个LINQ-to-SQL语句:
int count = dataContext.TableName.Select(primaryKeyId => primaryKeyId).Count();
Run Code Online (Sandbox Code Playgroud)
比这更高效:
int count = dataContext.TableName.Count();
Run Code Online (Sandbox Code Playgroud)
据我了解,你的两个select count陈述没有区别.
使用LINQPad,我们可以检查由不同LINQ语句生成的T-SQL.
对于Linq to SQL两者
TableName.Select(primaryKeyId => primaryKeyId).Count();
Run Code Online (Sandbox Code Playgroud)
和
TableName.Count();
Run Code Online (Sandbox Code Playgroud)
生成相同的SQL
SELECT COUNT(*) AS [value] FROM [dbo].[TableName] AS [t0]
Run Code Online (Sandbox Code Playgroud)
对于Linq to Entites,他们再次生成相同的SQL,但现在它是
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[TableName] AS [Extent1]
) AS [GroupBy1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |