PDA

View Full Version : سرعت کم در خواندن داده ها



mohamadz5
چهارشنبه 30 شهریور 1390, 00:40 صبح
سلام
این خط در برنامه من با جدولی 40 هزار ردیف تقریبا هنگ می کنه و یا timeout میده


var z = dc.Sanads.SingleOrDefault(a => a.SanadNo == sanadNo);

برنامه حسابداری هست . برنامه را با لینک نوشتیم اینطور شد ورژن قدیم سرعت زیادی داشت
دوستان چکاری می شه کرد ؟

asif1358
چهارشنبه 30 شهریور 1390, 01:30 صبح
بیشتر توضیح بدین برای چه از متد SingleOrDefault استفاده می کنید؛ این جوری که سطر بالا نشان میده شما می توانید از where استفاده کنید.

mohamadz5
چهارشنبه 30 شهریور 1390, 02:07 صبح
بیشتر توضیح بدین برای چه از متد SingleOrDefault استفاده می کنید؛ این جوری که سطر بالا نشان میده شما می توانید از where استفاده کنید.

سلام دوست عزیز .
البته این کد فقط نمونه هست . در کل برنامه این مشکل وجود داره . وقتی برنامه ما به مرحله تست رسید و جداول دیتا بیس را پر کردیم متوجه کندی سرعت در تمامی برنامه شدیم .
در هر قسمتی از کد که نیاز به پردازش داده ها باشد این مشکل وجود دارد
از کد ساده بالا تا کد زیر :اشتباه:

var x = dc.Sanads.Where(a => Convert.ToInt64(a.SanadNo) <= Convert.ToInt64(sanadNo))
.SelectMany(a => a.SanadRows.Where(b => b.Account.AccNo.StartsWith(accNoPrefix) && b.Account.AccNo.Length >= accTypeLen && (b.CostCenterID == costCenterID || costCenterID == 0)),
(a, j) => new { a.SanadID, AccNo = j.Account.AccNo.Substring(0, accTypeLen), dc.Accounts.First(ac => ac.AccNo == j.Account.AccNo.Substring(0, accTypeLen)).AccName, j.Bedehkar, j.Bestankar })
.GroupBy(a => new { AccNo = a.AccNo.Substring(0, accTypeLen), a.AccName })
.Select(a => new
{
a.Key.AccNo,
a.Key.AccName,
sumBedehkar = a.Sum(bed => bed.Bedehkar),
sumBestankar = a.Sum(bes => bes.Bestankar),
mandeBedehkar = (a.Sum(bed => bed.Bedehkar) - a.Sum(bes => bes.Bestankar) > 0 ? a.Sum(bed => bed.Bedehkar) - a.Sum(bes => bes.Bestankar) : 0),
mandeBestankar = (a.Sum(bes => bes.Bestankar) - a.Sum(bed => bed.Bedehkar) > 0 ? a.Sum(bes => bes.Bestankar) - a.Sum(bed => bed.Bedehkar) : 0)
});

من یکجا مطلبی خواندم در مورد کندی سرعت لینک

mohamadz5
چهارشنبه 30 شهریور 1390, 08:51 صبح
کسی هست که با لینک چند هزار رکورد را واکشی کرده باشه ؟:لبخندساده:

mohamadz5
چهارشنبه 30 شهریور 1390, 22:24 عصر
اساتید محترم
یکی کمک کنه