ورود

View Full Version : کاهش حجم بسیار بالا فایل



spicirmkh
چهارشنبه 15 آبان 1392, 19:13 عصر
با سلام

من یک بانک دارم که یک فیلد آن از نوع varbinary(MAX) است و برای جستجوی داخل متن pdf ایجاد کرده ام

قبلا نام و محل ذخیره فایل را در بانک نگه میداشتم. اما در این بانک با دستور SELECT BulkColumn,'.pdf' FROM OPENROWSET( BULK مشاهد میشود فایل pdf را بصورت باینری ذخیره میکند برای ساختن کاتالوگ .

و یک فایل بسیار بزرگ ایجاد میشود چه راهکار پشنهاد میشود که حجم فایل را کم کرد

با تشکر

حمیدرضاصادقیان
چهارشنبه 15 آبان 1392, 22:24 عصر
سلام.
SQL Server دو تا راهکار برای ذخیره فایل ها ارائه داده است.در نسخه 2008 قابلیت جدیدی به نام fileStream رو اضافه کرد و در نسخه 2012 قابلیت جدیدی به نام FileTable که بر مبنای همون FileStream بنا شده با یکسری قابلیتهای جدید.
شما میتونید این موارد رو در یک Filegroup جداگانه ایجاد کنید و در یک هارد دیگه یا سرور دیگه قرار بدید و به صورت جداگانه از Filegroup ها Backup تهیه کنید که هم حجم Backup های شما کاهش پیدا خواهد کرد هم اینکه باعث افزایش سرعت و Performance دیتابیس شما خواهد شد.
برای اطلاعات بیشتر در مورد این قابلیت پیشنهاد میکنم اینجا (http://technet.microsoft.com/en-us/library/ff929144.aspx) و اینجا (http://channel9.msdn.com/posts/SQL11UPD03-REC-06) رو ببینید.

موفق باشید

spicirmkh
پنج شنبه 16 آبان 1392, 10:21 صبح
سلام استاد



همانطور که فرمودید File Stream را مطالعه کردم . چند تا سوال و راهکار که نیاز دارم خدمتتان می گویم.



من یک پایگاه دارم که مشخصات مدارک مهمی می باشد . خود مدرک بصورت pdf روی سرور در فولدر خاصی ذخیره شده است و آدرس فولدر در پایگاه قرار دارد .

من دیروز یک table درست کردم که با ifilter acrobat می اید یک catalog می سازد برای full text می سازد برنامه بدرستی سرچ میکند اما حجم بانک دوم زیاد است . ( روش (bulk



شما فرمودید از file stream استفاده کنم سوال اینجا است من فقط catalog نیاز دارم و نیاز به ذخیره فایل pdf ندارم . چون خودم فایل در فولدرهای خاصی ذخیره کرده ام .



آیا می شود برای develop کردن این فایلها ندهم و از روی سیستم پاک کنم بعد از اینکه catalog ساخت .

چون جای خواندم وقتی از بانک backup می گیریم از این فایل backup می گیرد .

آیا file stream با ifilter acrobat مشکلی ندارد


با تشکر فراوان

حمیدرضاصادقیان
پنج شنبه 16 آبان 1392, 19:30 عصر
در مورد IFilter Acrobat من اطلاعاتی ندارم ولی فکر نمیکنم مشکلی باشه.
درمورد نوع Backup گیری اگر از روشی که گفتم استفاده کنید SQL Server هنگام تهیه Backup از فایلهای شما Backup تهیه میکند.
ولی من دقیق متوجه نشدم منظورتون از Catalog چی هست و دقیقا چی رو در دیتابیس ذخیره میکنه.

spicirmkh
جمعه 17 آبان 1392, 17:27 عصر
Catalog همان كليد واژه و ايندكس براي fulltext search است كه توسط sql ساخته ميشود،
برنامه ifilter acrobat مي ايد از متن فايل pdf كليد واژه ها را استخراج مي كند
سوال من اينجا است ايا فايلهاي كه بوسيله filestream و بر روي هارد ديسك مكان مشخصي ذخيره شده است مي توان اين فايل به كسي نداد و فقط ديتا بيس داد و عمل جستجو انجام دهد

حمیدرضاصادقیان
جمعه 17 آبان 1392, 19:43 عصر
اوههه من فکر کردم منظور شما از Catalog چیز دیگریست که سوال کردم! ببخشید:اشتباه:.

در مورد سوال شما ، بله وقتی طرف دیتابیس رو Restore کنه در واقع تمام محتویات کل دیتابیس شما شامل Catalog ها و مواردی که در Filestream هست رو میتونه ببینه و باهاش کار کنه.

spicirmkh
یک شنبه 19 آبان 1392, 11:43 صبح
سلام

چطور می توانم از Database خودم فقط backup بگیرم و از FileStream اصلا Backup نگیرم
آیا با Partial Backups بگیرم اگر جواب مثبت است دستورش به چه صورتی است

با تشکر

حمیدرضاصادقیان
یک شنبه 19 آبان 1392, 19:41 عصر
در بالا کامل توضیح داده.
با جداسازی FileGroup ها و Backup گیری از FileGroup ها به صورت جداگانه.