حجیم شدن فایل mdf و تقسیم کردن آن بر روی چند پارتیشن
با سلام و خسته نباشید خدمت شما
من می خواستم که فایل mdf در sql server را به ۲ یا ۳ فایل mdf تقسیم کنم فقط جهت اطلاع می خواستم بدانم بر روی برنامه نمی خواهم پیاده سازی کنم یعنی ۱ فایل mdf به مثلا ۲ یا ۳ فایل mdf تبدیل شود که هر کدام از فایلهای mdf در یک پارتیشن باشد که سرعت sql server افزایش یابد
فرض کنید فایل mdf سنگین هست و می خواهیم به چند قسمت تقسیم کنیم
ممنون می شوم راهنمایی کنید
با تشکر از شما
6 پاسخ
سلام دوست عزیز
هموطور که دوست خوبمون حمید آقا به این موضوع اشاره کردند.
در شرایط فعلی شما می تونید با فایل گروپ مشکلتون رو بخوبی مرتفع کنید..
مزایا :
1-بر روی جداولتون کنترل بیشتری خواهید داشت(یعنی اینکه میتونید از یک قسمت دیتابیستون بکاپ تهیه کنید بعنوان نمونه بخش انبار داری تو یک فایل گروپ،بخش حقوق دستمزد تو یک فایل گروپ دیگر)
2-Non clustered هاتون رو جدا کنید (در جهت افزایش کارایی سیستم)
3-فایلهای Clob و Blob رو جدا کنید(Varchar MAX,Nvarchar max,Varbinary)
در پایان طبق فرمایش دوستمون زمانی که شما هر کدام از اینها رو در دیسک جداگانه قرار ندید کارایی لازم رو به دست نمیارید.
چون نوع دسترسی به دیتافایل هاتون به صورت Random است ولی دسترسی به لاگ فایل بصورت
Sequential
با سلام و خسته نباشید
ممنونم دوست عزیز خیلی استفاده کردم خیلی خوب توضیح دادید
ممنونم که وقت گذاشتید خیلی استفاده کردم
با تشکر از شما
با سلام و خسته نباشید
ممنونم از راهنمایی شما
با سلام
همانطور که گفتم شما چند فایل گروپ اضافه کنید و جداول را به آن فایل گروپ ها انتقال بدهید ( انتقال جداول ممکن است با هم فرق کند) به عنوان مثال اگر جدولی Clustered Index داشته باشد شما می توانید از طریق دوباره سازی آن به صورت Online بدون آنکه اختلال در نرم افزار ایجاد شود جداول را انتقال دهید. یا اگر Clustered Index وجود ندارد با ساختن ایندکس آن را انتقال دهید.
پارتیشن بندی بر روی جداول هم همین کار انتقال را انجام می دهد اگر شما به صورت اصولی انجام دهید.
البته اگر شما این کارها را انجام دهید و بعد همه فایلها را روی یک هارد دیسک قرار دهید. این کار عملا بیهوده بوده و شما وقت خودتان را گرفته اید. هر فایل باید در یک هارد دیسک جداگانه قرار گیرد تا بتوانید از این قابلیت استفاده کامل را ببرید.
امیدوارم از این حرف بنده ناراحت نشوید ولی با کپی کردن کد شما حرفه ای نمی شوید. سعی کنید خودتان آن کدها را نوشته و Debug کنید. شما باید مفهوم هر خط کد در SQL Server را درک و عملیات پشت ضمینه آن را بدانید.
با تشکر
حمید ج. فرد
با سلام
البته کسی این کار را در برنامه انجام نمی دهد. برای اینکار شما دو راه دارید
۱- پارتیشن بندی در پایگاه داده که البته نیاز به بررسی اصولی پایگاه داده و داده ها دارد.
۲- ساختن FileGroup و جابه جایی جداول از Primary به FileGroup جدید.
می توانم مشخصات سرور و اینکه حجم پایگاه داده را بدانم؟
با تشکر
حمید ج. فرد
با سلام و خسته نباشید خدمت شما
با تشکر از جواب شما
چون من دارم sql server را به صورت حرفه ای می خوانم و تمرین می کنم البته الان حرفه ای نیستم می خواستم در سطح دیتابیس این کارو انجام بدهم نمی خواهم بر روی جدول ها پارتیشن بندی بکنم می خواهم فایل mdf که برای کل پایگاه داده است مثلا برای مثال 3 ترابایت حجم دارد را مثلا به 4 فایل mdf تقسیم بندی بکنم من بهترین روش را می خواستم
البته بر روی برنامه خاصی این کارو نمی خواهم انجام بدهم بیشتر برای یادگیری هست
اگر می شود چند مثال بزنید در حالت های متفاوت منظورم کدنویسی sql server هست ممنون می شوم
ممنون می شوم راهنمایی کنید
با تشکر از شما دوست عزیز