PDA

View Full Version : سوال: برطرف کردن زمان طولانی بارگذاری دیتاگرید



nathan
پنج شنبه 10 بهمن 1387, 19:17 عصر
باسلام خدمت دوستان وهمکاران گرامی.
پروژه ای دارم که دریکی ازفرمهای اون یک دیتاگریدهست ویکی ازستونهای این دیتاگریدهم دارای نوع داده ای عکس می باشد.
تعدادرکوردها هم بالای 2000 است وروزبه روز هم بیشتروبیشتر می شود!!!!:گیج:
مشکل دراینجاست که مدت زمان بارگذاری فرم خیلی طولانی و همچنین میزان حافظه اشغال شده به علت حجم بالای دیتاست مربوط به فرم وحشتناک است.
البته سایزعکسها خیلی بزرگ نیست و حجم هرکدام زیر 50 KB است امابدجوری مراگیرانداخته:عصبانی++::عصب نی++::گریه:
به شدت نیازمند راهنمائیهای دوستان هستم.:قلب:

slashslash2009
پنج شنبه 10 بهمن 1387, 20:34 عصر
خوب یه چیزه طبیعیه دیگه 2000*50 =100000kb میشه هر روزم که بهش اضافه میشه . به هر حال حجم بالایی هست. نمیتونی کاری کنی که مثلا تنها رکوردهی خاصی رو نشون بده با select کردن

RED-C0DE
پنج شنبه 10 بهمن 1387, 21:36 عصر
براي زمان بارگذاري فرم مي تونين بصورت Asynchronous کار کنين...به اينصورت که مثلا همون لحظه فرم شما load مي شه و هيچ وقفه اي در اينکار نمي افته ، و در همين حين روي يک Thread ِ ديگه رکوردهاي اطلاعاتي از بانک گرفته مي شه و به DataGrid ِتون اضافه مي شه...براي پياده سازي اين تکنيک در موردش جستجو کنين...

asynchronous database programming site:codeproject.com


همچنين Query هاتون رو بررسي کنين تا جاي ممکن Optimize باشن و دقيقا بررسي کنين که آيا واقعا وجود بعضي فيلدها در Query ضروريست...!

يه نکته ديگه در مورد سرعت اينکه مي تونين اطلاعات رو Cache کنيد تا جلوي مراجعات بي مورد به بانک اطلاعاتي رو بگيرين(تنها در صورت نياز و تغيير)...

SQL Server Local DataBase Cache

رو در گوگل جستجو کنين...

linux
جمعه 11 بهمن 1387, 00:27 صبح
باسلام خدمت دوستان وهمکاران گرامی.
پروژه ای دارم که دریکی ازفرمهای اون یک دیتاگریدهست ویکی ازستونهای این دیتاگریدهم دارای نوع داده ای عکس می باشد.
تعدادرکوردها هم بالای 2000 است وروزبه روز هم بیشتروبیشتر می شود!!!!:گیج:
مشکل دراینجاست که مدت زمان بارگذاری فرم خیلی طولانی و همچنین میزان حافظه اشغال شده به علت حجم بالای دیتاست مربوط به فرم وحشتناک است.
البته سایزعکسها خیلی بزرگ نیست و حجم هرکدام زیر 50 KB است امابدجوری مراگیرانداخته:عصبانی++::عصب نی++::گریه:
به شدت نیازمند راهنمائیهای دوستان هستم.:قلب:
چه دلیلی داره که می خواهید همه رکورد ها را با هم تو دیتاگرید نمایش بدهید!
جستجو را برای چی گذاشتن ، دیدن این همه رکورد توی یکجا چه فایده داره؟

moferferi
پنج شنبه 09 مهر 1388, 16:36 عصر
سلام.
اقا من این عبارت
asynchronous database programming site
را توی سایت codeproject سرچ کردم ولی به اون چیزی که میخواستیم نرسیدم.
کسی میتونه بگه چه طوری میشه دیتاگرید را با یه ترید جداگانه پر کرد .طوری که فرم فریز نشه.

saeeedft
جمعه 10 مهر 1388, 01:08 صبح
سلام.
اقا من این عبارت
asynchronous database programming site
را توی سایت codeproject سرچ کردم ولی به اون چیزی که میخواستیم نرسیدم.
کسی میتونه بگه چه طوری میشه دیتاگرید را با یه ترید جداگانه پر کرد .طوری که فرم فریز نشه.
سلام دوست عزیز، یک قطعه برنامه asynchronous داشتم، اگه بتونم گیرش بیارم(پیداش کنم) حتما برات میفرستم

saeeedft
جمعه 10 مهر 1388, 01:11 صبح
ضمنا شما ببین دیتابیس رو هم اصولی طراحی کردین یا نه؟ در غیر این صورت دیر لود شدن برنامه تون امری طبیعه، ضمن اینکه نشان دادن این همه رکورد در زمان لود فرم کمی غیر معقول هستش،اگه نیازی به دیدن همه رکوردها در زمان لود ندارید،اگه با جستجو این کار رو انجام بدید بهتره

naeeme
شنبه 11 مهر 1388, 11:04 صبح
شما واقعا می خواید این همه رکورد رو توی یک صفحه به کاربر بیچاره نشون بدین؟؟؟
تو هیچ برنامه ای کاربر از دیدن تمام رکوردهای جدول در برنامه خوشحال نمیشه!! شما اگر می خواید داده ها رو به کاربر نشون بدین حتما از صفحه بندی استفاده کنین. مثلا 25 رکورد اول رو نشون بدین و کاربر با زدن دکمه بعدی، 25 تای دوم رو ببینه و الا آخر.

اینجوری سرعت بارگذاری فرمتون معمولی میشه، کاربر تعداد محدودی از اطلاعات رو میبینه و میدونه که همینطور صفحه به صفحه می تونه همه اونها رو ببینه و دیتابیس هم بیچاره نمیشه

یه جستجو هم توی همون صفحه بذارید که نتایج جستجو در گرید نمایش داده بشه.

Mohsen_Fotouhi
یک شنبه 12 مهر 1388, 10:03 صبح
سلام دوست عزیر

شاید جواب من از نظر بعضی از دوستان صحیح نباشه اما من مثل شما با چنین موردی برخورد کرده بودم و از BackGroungWorker استفاده کردم

Mohagheghi
یک شنبه 12 مهر 1388, 10:50 صبح
يكي از دوستان قبلاً يك مثال قرار داده بود .
اميدوارم مفيد واقع شود.
نمونه برنامه:
http://barnamenevis.org/forum/attachment.php?attachmentid=14985&d=1204098223