PDA

View Full Version : طراحی database برای حجم اطلاعات بالا



mrali.jalali
یک شنبه 23 خرداد 1395, 09:05 صبح
سلام. من یک برنامه بایگانی دارم (کاغدها اسکن میشن و داخل sql ذخیره میشن)

حجم اطلاعاتم خیلی بالاست . دوماهه 5 گیگ شده .

میخاستم بدونم چکار کنم در آینده به مشکل کندی سرعت برنخورم

ژیار رحیمی
یک شنبه 23 خرداد 1395, 09:16 صبح
تصاویر اسکن شده رو بدون پردازش در دیتابیس ذخیره کردی؟
حجم دیتابیس شما غیر منطقی میباشد 5گیگ برای دو ماه!
شما باید قبل از ذخیره تصاویر در دیتابیس اونا رو بهینه سازی(از نظر حجم وسایز) میکردی

NasimBamdad
یک شنبه 23 خرداد 1395, 12:18 عصر
سلام. من یک برنامه بایگانی دارم (کاغدها اسکن میشن و داخل sql ذخیره میشن)

حجم اطلاعاتم خیلی بالاست . دوماهه 5 گیگ شده .

میخاستم بدونم چکار کنم در آینده به مشکل کندی سرعت برنخورم

کار اشتباهی انجام دادید

باید عکس ها را در یک پوشه SAVE کنید و بعد آدرس عکس ها رو در دیتابیس ذخیره کنید !!

mrali.jalali
دوشنبه 24 خرداد 1395, 11:57 صبح
تصاویر اسکن شده رو بدون پردازش در دیتابیس ذخیره کردی؟
حجم دیتابیس شما غیر منطقی میباشد 5گیگ برای دو ماه!
شما باید قبل از ذخیره تصاویر در دیتابیس اونا رو بهینه سازی(از نظر حجم وسایز) میکردی


فکر میکنم 5 هزارتا رکورد شده تا الان ولی باز هم حجمش زیاده

من هرچی گشتم کد بهینه سازی داخل سایت ها با ذخیره عکس در دایرکتوری بود . شما نمونه کد دارید ؟ممنون میشم

ژیار رحیمی
دوشنبه 24 خرداد 1395, 15:36 عصر
دوست گرامی قبل از نوشتن برنامه باید راهکار مناسب انتخاب میکردی تا چنین مشکلی مواجه نمیشدی.
در حال حاضر دو راه حل داری :
1- شیوه ذخیره سازی درون دیتابیس رو بیخیال شی و اون 5000 رکورد رو عکسهای موجود درون دیتابیس رو استخراج کنی و داخل یک پوشه کنار پروژه ت ذخیره کنی و به روش دوستمون NasimBamdad عمل کنی.
2- روش خودتو ادامه بدی منتها عکس های درون دیتابیس رو بهینه سازی کنی.بهتره از پکیج های nuget کمک بگیر ببین با کد نویسی کدومش راحت تری استفاده کن
https://www.nuget.org/packages/Rotex.ImageManager/
https://www.nuget.org/packages/Einstein.Image/
https://www.nuget.org/packages/Accusoft.ImageGear.All/
http://stackoverflow.com/questions/87753/resizing-an-image-without-losing-any-quality

mrali.jalali
سه شنبه 25 خرداد 1395, 19:26 عصر
دوست گرامی قبل از نوشتن برنامه باید راهکار مناسب انتخاب میکردی تا چنین مشکلی مواجه نمیشدی.
در حال حاضر دو راه حل داری :
1- شیوه ذخیره سازی درون دیتابیس رو بیخیال شی و اون 5000 رکورد رو عکسهای موجود درون دیتابیس رو استخراج کنی و داخل یک پوشه کنار پروژه ت ذخیره کنی و به روش دوستمون NasimBamdad عمل کنی.
2- روش خودتو ادامه بدی منتها عکس های درون دیتابیس رو بهینه سازی کنی.بهتره از پکیج های nuget کمک بگیر ببین با کد نویسی کدومش راحت تری استفاده کن
https://www.nuget.org/packages/Rotex.ImageManager/
https://www.nuget.org/packages/Einstein.Image/
https://www.nuget.org/packages/Accusoft.ImageGear.All/
http://stackoverflow.com/questions/87753/resizing-an-image-without-losing-any-quality



ممنون از راهنماییتون
کدوم روش اصولیتره ؟ (برنامه تحت شبکه ست )هر کی و هر جا ی چبزی میگن .

reza_ali202000
چهارشنبه 26 خرداد 1395, 01:52 صبح
سلام دوست عزیز
دیتا بیستو فرگمنت کن و بزار خود اس کیو ال ماه به ماه یه دیتابسس ررس کنه و اگه حافظه درایو کم اورد میتونه توی درایوا و هاردای دیگا ادامه بده. یکمی دیدمون باز باشه فک کنیم الان اطلاعات گوگل میخاد ذخیره یشه.

ali_habibi1384
چهارشنبه 26 خرداد 1395, 07:47 صبح
من همیشه یه پوشه share میکنم از روی سرور و مسیرش رو تو دیتابیسم یکجا ذخیره میکنم تا همه عکسها اونجا ذخیره بشه و آدرس دهی بر اساس پوشه درون سرور باشه.
اگه بخوای عکسها رو بهینه کنی ممکنه سایز و کیفیت تصویر بیاد پائین که این ممکنه بعدا مشکل ساز باشه برات.(ممکنه کاربر عکسها رو با کیفیت اصلی بخواد مثلا فایلهای فتوشاپی باشه که لایه بازند)
بنظر من هم همون آدرس عکس رو ذخیره کنی بهتر باشه.

mrali.jalali
چهارشنبه 26 خرداد 1395, 08:34 صبح
امروز دیتا رو دیدم . 33500 رکورد(عکس) - 6ونیم گیگ حجم فایل دیتا


اگر بخام عکس رو دایرکتوری ذخیره بشه باید قسمت پرینت هم تغییر بدم :ناراحت:

Roia_del
چهارشنبه 26 خرداد 1395, 12:35 عصر
امروز دیتا رو دیدم . 33500 رکورد(عکس) - 6ونیم گیگ حجم فایل دیتا


اگر بخام عکس رو دایرکتوری ذخیره بشه باید قسمت پرینت هم تغییر بدم :ناراحت:


اگه حجم فایلهات هر یک بالاتر از 1MB هست (متوسطش ) و دیتابیست SQL Server هست از FILESTREAM استفاده کن.


When to Use FILESTREAM
In SQL Server, BLOBs can be standard varbinary(max) data that stores the data in tables, or FILESTREAM varbinary(max) objects that store the data in the file system. The size and use of the data determines whether you should use database storage or file system storage. If the following conditions are true, you should consider using FILESTREAM:


Objects that are being stored are, on average, larger than 1 MB.

Fast read access is important.

You are developing applications that use a middle tier for application logic.

For smaller objects, storing varbinary(max) BLOBs in the database often provides better streaming performance.





https://technet.microsoft.com/en-us/library/bb933993(v=sql.105).aspx