こんにちは、私はこの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 *のように返されます。これにより、クエリはインデックスを使用するのではなく、テーブルスキャンを実行します。パフォーマンスが悪い。
次のように、名前の列だけを選択するにはどうすればよいですか。
SELECT TOP (1)[t0].[name] FROM [lntmuser].[attach] AS [t0]
前もって感謝します
編集:必要に応じて壊れたメガネ ソリューション プロファイル
SELECT TOP (1) [t0].[name]
FROM [lntmuser].[attach] AS [t0]
WHERE [t0].[sysid] = @p0