0

これは、データベースのメイン テーブルに約 20000 レコードしかないまで正常に動作するコードです。DBが大きなプログラムになると、ステートメントda.Fill(data)でフリーズします。例外はスローされず、プログラムは動作を停止します。私に何ができる?

DataTable data = new DataTable();
SqlCeCommand cmd = new SqlCeCommand();
SqlCeDataAdapter da = new SqlCeDataAdapter();

cmd = new SqlCeCommand("SELECT DISTINCT * FROM ((Osoba AS a LEFT OUTER JOIN Doswiadczenie AS b ON a.HashId = b.Hashid) LEFT OUTER JOIN Wyksztalcenie AS c on a.HashId = c.HashId) INNER JOIN Uczelnia as d ON c.UczelniaId = d.UczelniaId WHERE a.DataOstOdczytu >= @minDate AND a.DataOstOdczytu <= @maxDate AND b.DataOdczytu >= @minDate AND b.DataOdczytu <= @maxDate AND c.DataOdczytu >= @minDate AND c.DataOdczytu <= @maxDate", this.Connection);

cmd.Parameters.Add(new SqlCeParameter("@minDate", minDate));
cmd.Parameters.Add(new SqlCeParameter("@maxDate", maxDate));

da.SelectCommand = cmd;
try
{
    da.Fill(data);
}
catch (System.Data.SqlServerCe.SqlCeException)
{
    throw;
}

return data;
4

1 に答える 1