PDA

View Full Version : خطای stackoverflowexception در هنگام درج همزمان زیاد داده



aghayex
جمعه 18 بهمن 1392, 22:25 عصر
با سلام
من در یه پروژه وب که میزبانش asp هست و از ef6 استفاده کردم ولی موقعی که می خوام دیتابیس رو بسازم نیاز دارم که تعداد 12 هزار رکورد رو در سه جدول درج کنم اما متاسفانه در مراحل آخر پروژه خطای stackoverflowexception میده .
روش درج این تعداد رکورد به این صورت هست رکوردها رو در یه لیست قرار میدم و بعد اونو به متد addrange تیبل مورد نظرم معرفی می کنم و در نهایت متد savechang(); رو صدا می زنم .

Sharar3D
جمعه 18 بهمن 1392, 23:01 عصر
میشه بخشی از کدت رو هم بذاری ؟
این خطا موقعی رخ میده که یه لوپ درست به اتمام نرسه و چرخشش این قدر ادامه پیدا کنه تا که همه فضا رو اشغال کنه و مموری پر بشه.
دلیل دیگه هم میتونه این باشه که حجمی که میخوای یکجا وارد کنی خیلی زیاده، امتحان کن ببین میتونی رکورد ها رو به چند بخش کوچکتر تقسیم کنی و بعد ذخیره کنی یا نه

aghayex
شنبه 19 بهمن 1392, 09:29 صبح
صحبت شما درسته . این 12 هزار رکورد مربوط به سه تیبل میشه که به ترتیب برای تیبل اول 1800 رکورد تیبل دوم 2400 رکورد و مابقی اونها مربوط به تیبل سوم میشه و وقتی که شروع به درج می کنه مشکلی با داده های تیبل اول و دومی نداره و کارشو خوب انجام میده اما به تیبل سومی که میرسه خطا رو صادر می کنه . باز هم اومدم اون 7800 رکورد تیبل سومی رو هم به سه بخش تقسیم کردم و هر بخش رو به ترتیب درج کردم اما در نهایت به بخش های دوم و سوم تقسیم شده تیبل سوم گیر مید .
البته اینو بگم که من از ریا سرویس برای ارتباط با سرویس دهنده استفاده می کنم و یه دوستی می گفت که ریا در حجم های داده ای زیاد کم میاره و خطا مموری میده

aghayex
شنبه 19 بهمن 1392, 19:56 عصر
تا حالا دوستی به این مشکل برنخورده؟

aghayex
شنبه 26 بهمن 1392, 17:42 عصر
اومدم از sqlbulkcopy استفاده کردم و به ازای هز 2000 رکورد یه using قرار دادم .