2 つのテーブル (Data と DataValues、1 対多) を結合し、 type の辞書を埋める方法を検索してきました。
Data(s) のレコードは数千 (たとえば 500,000 以上) になる場合があり、各 Data には 10 から 20 の DataValue が含まれる場合があり、クエリが非常に重いため、ここではパフォーマンスが非常に重要になります。
ここに私が書いたコードがあります:
// Passed via the arguments, for example, sensorIDs would contain:
int[] sensorIDs = { 0, 1, 2, 3, 4, 5, 6, 17, 18 };
Dictionary<Data, List<DataValue>> dict = new Dictionary<Data, List<DataValue>>();
foreach (Data Data in dt.Datas)
{
var dValues = from d in dt.Datas
join dV in dt.DataValues on d.DataID equals dV.DataID
where (SensorIDs.Contains(dV.SensorID))
select dV;
dict.Add(Data, dValues.ToList<DataValue>());
}
しかし、このアプローチには重大なパフォーマンス上の問題があり、実行に時間がかかります。SQL ビューを使用する必要があるかどうかわかりません。助言がありますか?