LinqからSQlを使用してデータをクエリしています。私が順に選択クエリを記述し、SQL Serverプロファイラで監視する場合には、データを注文するテーブル Linq to SQlクエリのパフォーマンス
- を実行します。
データが大量になると時間がかかります。このための解決策はありますか?
更新日:
from dc in dataContext.UserTable join
m in dataContext.MonthLookups on dc.Month equals m.Month into sr
from x in sr.DefaultIfEmpty()
order by dc.UserName, dc.FirstName
select new {dc, sr.MothName};
更新:
SELECT
[Project1].[ UserName] AS [UserName],
[Project1].[ FirstName] AS [FirstName],
[Project1].[ MonthName] AS [MonthName],
[Project1].[year] AS [year]
FROM (SELECT
[Extent1].[UserName] AS [UserName],
[Extent1].[FirstName] AS [FirstName],
[Extent1].[year] AS [year],
[Extent2].[MonthName] AS [MonthName]
FROM [dbo].[DutySavingFin] AS [Extent1]
LEFT OUTER JOIN [dbo].[MonthLookup] AS [Extent2] ON [Extent1].[Month] = [Extent2].[Month]
) AS [Project1]
ORDER BY [Project1].[UserName] ASC, [Project1].[FirstName] ASC
更新:
好ましい方法:
SELECT
[Extent1].[UserName] AS [UserName],
[Extent1].[FirstName] AS [FirstName],
[Extent1].[year] AS [year],
[Extent2].[MonthName] AS [MonthName]
FROM [dbo].[DutySavingFin] AS [Extent1]
LEFT OUTER JOIN [dbo].[MonthLookup] AS [Extent2] ON [Extent1].[Month] = [Extent2].[Month]
ORDER BY [Extent1].[UserName] ASC, [Extent1].[FirstName] ASC
テーブル内のすべてのデータを必要としない限り、?、あなたが必要とするレコードを絞り込むためにwhere句を追加しますか。 – Guillaume86
dataContext.UserTable におけるDCからsr.DefaultIfEmpty(IN xからSR にm.Monthに等しいdc.MonthにdataContext.MonthLookupsにMを結合する)dc.UserNameによって ため、dc.FirstName新しい{DC、SRを選択 .MothName}; – sugirthini
あなたの質問を編集し、コードブロックを使用して読みやすくなります;) – Guillaume86