ورود

نسخه کامل مشاهده نسخه کامل : حجم Dataset



Msba
09-02-2011, 12:18
من می خواهم یه دیتابیس حدود 1 گیگی رو تو یه دیتاست در رویداد بازگشایی فرم Fill کنم. می خواهم بدونم :
1-این کار خیلی طول می کشه؟ یعنی فرم طول می کشه باز شه؟ (حدود 50000 رکورد)
2- این حجم پر شده فضا از کجا می گیره؟ از Ram ؟ اگه از Ram می گیره پس اگه Ram یک سیستم 1Gb باشه و من بخواهم 2 گیگ بریزم تو دیتاست چی میشه؟
3-راه کاری مناسب دارید ارائه کنید.

متشکرم از همه علما.:10:

H A M A S
09-02-2011, 12:49
من می خواهم یه دیتابیس حدود 1 گیگی رو تو یه دیتاست در رویداد بازگشایی فرم Fill کنم. می خواهم بدونم :
1-این کار خیلی طول می کشه؟ یعنی فرم طول می کشه باز شه؟ (حدود 50000 رکورد)
2- این حجم پر شده فضا از کجا می گیره؟ از Ram ؟ اگه از Ram می گیره پس اگه Ram یک سیستم 1Gb باشه و من بخواهم 2 گیگ بریزم تو دیتاست چی میشه؟
3-راه کاری مناسب دارید ارائه کنید.

متشکرم از همه علما.:10:

اگر منابع سیستمی تون مثل رم زیاد باشه صد در صد عملکرد واکشی بهتره
البته بهتر بود موقع طراحی دیتابیس با اعمال قانون هایی از بروز انومالی و ... که باعث افزایش حجم دیتابیس میشن جلوگیری میکردید
یه روش هایی شنیدم حجم دیتابیس رو کم میکنه شاید دوستان دیگه بتونن کمکتون کنند
تنها راه حلی که به ذهنم میرسه اینکه یکبار با Linq داده هاتون رو واکشی کنید ببینید سرعتش بهتره یا نه

Msba
09-02-2011, 13:34
من Linq بلد نیستم اگه یه یه لینک آموزش ساده دارید خوشحالمون می کنید.
در ضمن الان کار از کارگذشته و طراحی دیتابیس رو نمی شه تغییر داد.
--------------------------------------------------------------------------------------
حالا اگر بخواهند یه دیتای حجیم رو این طوری استفاده کنند چی کار می کنند؟ از چند تا DB استفاده می کنند؟

H A M A S
09-02-2011, 17:00
من Linq بلد نیستم اگه یه یه لینک آموزش ساده دارید خوشحالمون می کنید.
در ضمن الان کار از کارگذشته و طراحی دیتابیس رو نمی شه تغییر داد.
--------------------------------------------------------------------------------------
حالا اگر بخواهند یه دیتای حجیم رو این طوری استفاده کنند چی کار می کنند؟ از چند تا DB استفاده می کنند؟

خدمت شما:
اموزش جامع لینک:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Msba
09-02-2011, 18:29
بابت Linkq ممنون ولی اون حجم DataSet تکلیفش چی شد تو ADO.net ؟

H A M A S
09-02-2011, 19:51
بابت Linkq ممنون ولی اون حجم DataSet تکلیفش چی شد تو ADO.net ؟

آدم خبره ای توی مسائل ado.net نیستم
اما خودتون یبار با هر دو روش امتحان کنید ببینید چقدر زمان میبره

هر کدوم سریعتر بود همون روش رو انتخاب کن!!
مسائل ریز و فنی تر رو شاید دوستان دیگه ای بتونن کمکت کنن
========================================
ولی کلا برای دسترسی به بانک اطلاعاتی من صد در صد لینک رو پیشنهاد میکنم چون یکی از صدها مزیتش درگیر نبودن کاربر با بعضی چیزهای جزئی مثل sqldataadapter-datset و... هست

موفق باشید

_H2_
09-02-2011, 21:03
سلام
با هر روشی که به دیتابیس وصل شوید اصل تئوری فرقی ندارد ...
دیتابیس قرار نیست در RAM باشد.
دیتابیس برخی شرکت های بزرگ تا چند ده ترابایت میرسد، فکر میکنید چند ده ترابایت RAM دارند؟!


RAM که جای این کارها نیست.
یک رایانه 100G هارد دارد در مقابل 1G رم دارد، قرار نیست هرچه داخل هارد است را خالی کنید تو RAM ...
این اصلاً مخالف هر منطق و تئوری است.

این خیلی غیر منطقی است که شما کدی نوشته باشید که در آن نیاز باشد کل دیتابیستان Fill شود در RAM ...

=====

برنامه نویس باید فقط حداقل بخش مورد نیاز را از دیتابیس بخواند.
اگر میخواهید چند ده و چندصد هزار سطر اطلاعات را به کاربرتان نشان دهید (و کاربرتان هم به فرض محال میتواند همه را ببینید) باید نوعی صفحه بندی داشته باشید و در هر صفحه 10 یا 100 یا فوقش 1000 سطر را نمایش دهید ...

همین سایت جاری، یک محصول برنامه نویسی است.
تا الآن کمی کمتر از شش میلیون پست در دیتابیس آن ثبت شده ...
(6000000 کجا و 50000 تا کجا !)
گمان میکنید برنامه نویس همه دیتابیس را همیشه روی RAM نگاه میدارد؟ و RAM سرور از هارد آن بیشتر بوده که برنامه بدون مشکل کار میکند؟ (پس موتور دیتابیس به چه درد میخورد؟)

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

چه از نظر راحتی کاربر و چه از نظر سرعت و چه منطق برنامه نویسی این صحیح نیست که شما مثلاً وقتی وارد انجمن Framework میشوید کل پست ها از تاریخ شروع به کار انجمن تا حالا همه در نمایه دیداری ریخته شوند وسط ...

شاید بگویید برنامه من تحت وب نیست! خوب هیچ فرقی ندارد!
50000 سطر را یکجا نمایش دهید برای کاربران ساده تر است یا فقط 100 سطر را نشان دهید با مکانیزم صفحه بندی؟
اصلاً اگر دقت کرده باشید وقتی تعداد سطرها زیاد میشود کوچک ترین حرکت ScrollBar موجب جابجایی عظیمی میشود که عملاً به دلیل مدام مشکل تر شدن کنترل Scrollbar ، این کنترل ارزشمند را هم بی فایده میکند ...

=====

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

جمیعاً موفق باشید.

aliaghaaaaa
14-02-2011, 19:56
سلام.
توضیحات خیلی کاملی بود.
از دوست خوبم آقای _h2_ تشکر می کنم.

Guts
18-02-2011, 18:01
ضمن تأیید گفته های دوستمون جناب H2 باید بگم 50000 هزارتا رکورد تعداد خیلی زیادی هم نیست و در حد یه دیتابیس متوسطه در هر صورت شما برای دسترسی به دیتا چه 5000تا چه 50000 هزارتا باید از روش هایی مثل data virtualization برای کار کردن و نمایش دیتا استفاده کنید؛ مثلاً برای نمایش دیتا در یک جدول، 200 تا 200تا رکوردها بگیری و نمایش بدی یا استفاده از متد های مختلف کش کردن دیتا و خیلی روش ها و ترفندهای دیگه که استفادشون بعضاً لازم و ضروریه.
یه پیشنهاد دیگه ای که میتونم بکنم، استفاده از EntityFrameWork یا یک ORMهای درست درمونه که هم کارها رو راحت تر میکنه هم با روش هایی که استفاده میکنن و یا تنظیماتی که میشه روشون اعمال کرد تو پرفرمنس هم تأثیر زیادی داره.