私たちはいくつかの方法を最適化しようとしています。Redgate のパフォーマンス プロファイラーを使用して、パフォーマンス リークを見つけます。
私たちのツールは、いくつかの方法でオブジェクトに Linq を使用します。FirstOrDefault
しかし、オブジェクト数が +/- 1000 のコレクションでは非常に時間がかかることに気付きました。
プロファイラーは、クエリが非常に遅いことも警告します。プロファイラーの結果に画像を追加しました。
コレクションをデータベースに追加してからデータベースにクエリを実行することはできません。推奨事項はありますか?
ありがとう !
private SaldoPrivatiefKlantVerdeelsleutel GetParentSaldoPrivatiefKlantVerdeelsleutel(SaldoPrivatiefKlantVerdeelsleutel saldoPrivatiefKlantVerdeelsleutel, SaldoGebouwRekeningBoeking boeking, int privatiefKlant)
{
SaldoPrivatiefKlantVerdeelsleutel parentSaldoPrivatiefKlantVerdeelsleutel = null;
if (saldoPrivatiefKlantVerdeelsleutel != null)
{
try
{
parentSaldoPrivatiefKlantVerdeelsleutel = saldoPrivatiefKlantVerdeelsleutel.AfrekenPeriode.SaldoPrivatiefKlantVerdeelsleutelCollection
.FirstOrDefault(s => (boeking == null || (s.SaldoVerdeelsleutel != null &&
(s.SaldoVerdeelsleutel.GebouwVerdeelSleutel.ID == boeking.SaldoGebouwRekeningVerdeling.SaldoGebouwRekening.SaldoVerdeelsleutel.GebouwVerdeelSleutel.ID)))
&& s.PrivatiefKlant.ID == privatiefKlant);
}
catch (Exception ex)
{ }
}
return parentSaldoPrivatiefKlantVerdeelsleutel;
}
画像: プロフィールレポート