シナリオを設定するには、テーブルに100000行があり、それがますます大きくなると言います。このキューは現在、テーブルから約40または50行だけを取得するのに2秒以上かかる。このLINQクエリをより速くしてください。
この表のデータは、DateTime参照でグループ分けされているため、これは表内の他の行と唯一等しい値であるため、すべてのデータをDateTimeでグループ化することから始めます。行の各グループは、1行から5行MAXまでの任意の場所にすることができます。次に、グループ化された行を選択し、データを選択してユーザーに表示します。私が見ることができる問題は、SQLでEXISTとGroupを引き起こすことです。キューを高速化するためには、一度に40行すべてを選択する必要がありますが、FORループで各グループを選択します。どうすればこのキューを高速化できますか?そのうちの最も遅いものと私のユーザーは2秒の待ち時間について不平を言っています。助けてください。
それはに変換何(from yy in Data_Captured_Type_Militaries
where yy.DateTime_Added >= DateTime.UtcNow.AddHours(-72)
(from xx in Data_Captured_Type_Militaries
where xx.DateTime_Added >= DateTime.UtcNow.AddHours(-72)
group xx by xx.DateTime_Added into gg
select gg.Key).Contains(yy.DateTime_Added)
select new
{
yy.Elites,
yy.DateTime_Added,
yy.Uid,
yy.Military_Location,
yy.Province_ID,
yy.Time_To_Return
}).ToList()
:
SELECT [t0].[Elites], [t0].[DateTime_Added], [t0].[uid] AS [Uid],[t0].[Military_Location], [t0].[Province_ID], [t0].[Time_To_Return]
FROM [Data_Captured_Type_Military] AS [t0]
WHERE (EXISTS (
SELECT NULL AS [EMPTY]
FROM (
SELECT [t1].[DateTime_Added]
FROM [Data_Captured_Type_Military] AS [t1]
WHERE [t1].[DateTime_Added] >= @p0
GROUP BY [t1].[DateTime_Added]
) AS [t2]
WHERE [t2].[DateTime_Added] = [t0].[DateTime_Added]
)) AND ([t0].[DateTime_Added] >= @p1)
は、私は多くの年前にこのゲームをプレイ.... :) – Jimmy
おかげジミーを覚えているが、それは確かに役立ちません。 lol –