你好,我有以下这段linq代码:
var fp = lnq.attaches.First(a => a.sysid == sysid).name;
当进行性能分析时,它会生成以下的t-sql
SELECT TOP (1) [t0].[sysid], [t0].[name], [t0].[att_size], [t0].[cid], [t0].[flags], [t0].[contents]
FROM [lntmuser].[attach] AS [t0]
我认为它的返回结果就像"select *",这会导致查询执行表扫描而不是使用索引。这对性能不利。
我该如何只选择"name"列,比如:
SELECT TOP (1)[t0].[name] FROM [lntmuser].[attach] AS [t0]
预先感谢。
编辑: Broken Glasses Solution 的配置文件符合要求。
SELECT TOP (1) [t0].[name]
FROM [lntmuser].[attach] AS [t0]
WHERE [t0].[sysid] = @p0
lnq.attaches.First(a => a.sysid == sysid).name
可以使代码更加简洁(并且可能更高效)。 - Ethan BrownFirst()
将实现所有列 - OP只想实现一列值。 - BrokenGlass