دوپینگ شیرپوینت – مدیریت دیتابیسهای حجیم شیرپوینتی

شاید برای شما هم اتفاق افتاده باشد که یک سایت کالکشن شیرپوینت خودتان حجمش از مقدار استاندارد و Best Practice شیرپوینت بالاتر رفته باشد و یا اینکه از ابتدا می دانید این سایت قرار است برایش این اتفاق بیافتد. حال باید چه کرد؟

در این مقاله قصد داریم یکی از کارهایی که میتوان با آن performance دیتابیس را بالابرد به شما معرفی کنیم. در Case Study مورد نظر ما سایت کالکشنی در شیرپوینت داریم که حجم آن به یک ترابایت رسیده است. برای اینکه ما حال این سایت کالکشن و دیتابیس مورد نظر را بهتر کنیم باید مراحل زیر را انجام دهیم.

مراحل انجام کلی کار به صورت زیر است:

  • ابتدا باید توی فایل گروپ Primary تعدادی دیتافایل خالی ایجاد کنیم.
  • بهتر است که دیتا فایلهای ایجاد شده را در دیسک های مجزا قرار دهیم.
  • تعداد این دیتا فایل ها باید کوچکتر یا مساوی تعداد Coreهای CPU باشد.
  • حجم همه دیتافایل ها یکسان باشد.
  • Trace Flag عه ۱۱۱۷ را باید فعال کنیم برای رشد همزمان همه دیتا فایل ها
  • در مرحله بعد باید دیتا فایل حجیم اولیه را دیتاهاش را خرد کنیم توی دیتافایل های ایجاد شده
  • بعد از عملیات Shirink File که انجام دادیم همه ایندکس های اون دیتابیس Fragment میشوند که باید ایندکس ها هم Rebuild شوند.

۱- ابتدا باید توی فایل گروپ Primary تعداد مورد نظر دیتا فایل را با توجه به Cpu Core ها ایجاد کرد که در مثال ما فرض میکنیم که تعداد Cpu Core های ما ۴ تاست و من ۴ تا دیتافایل ایجاد میکنم که از همه ظرفیت CPU بتونم استفاده کنم و اون دیتا فایل حجیم ۱ترابایتی  را به ۴ تا دیتا فایل با حجم مساوی تقسیم کنم.

برای ساخت دیتا فایل جدید باید دستور زیر را قرار داد:

در اینجا باید به چند نکته توجه داشت. اول اینکه حجم همه دیتا فایل های یکسان باشد و از همه مهمتر اینکه FileGrowth عه همه دیتا فایل ها به صورت درصدی نباشد و همین عدد ۵۱۲ مگابایت باشد و همینطور SIZE هم ۱ گیگابایت باشد. اینکه FileGROWTH روی درصدی که به صورت دیفالت هست نباید باشد به این دلیل است که وقتی درصدی باشد مثلا ۱۰ درصد ما هر گاه DataBase مان به حجم حداکثری میرسد یک Locking ایجاد میکنه تا بتونه رشد کنه که فقط به اندازه ۱۰درصد رشد میکنه و این ممکن است در طول روزها انجام شود که از نظر پرفورمنسی دیتابیس را با مشکل مواجه کند.

دوپینگ شیرپوینت - مدیریت دیتابیسهای حجیم شیرپوینتی

۲- بعد از اینکه دیتا فایل ها را ایجاد کردیم نوبت به آن میرسد که آن دیتا فایل حجیم را توی دیتا فایل های ایجاد شده خرد کنیم که برای این کار باید از دستور ShrinkFile استفاده کنیم که دستور آنرا جلوتر برای شما قرار خواهم داد. فقط قبل از این کار باید TraceFlag عه ۱۱۱۷ را روی دیتابیس مورد نظر فعال کرد که این TraceFlag کاری که میکند باعث میشود دیتافایل ها به یک اندازه رشد کنند و یک دیتافایل بیش از حد رشد نکند زیرا اگر یک دیتافایل بیشتر از بقیه رشد کند بعد از آن هم بقیه دیتاها را بیشتر به سمت خودش میکشد و این باعث بوجود آمدن مشکلات پرفورمنسی در آینده خواهد شد.

دوپینگ شیرپوینت - مدیریت دیتابیسهای حجیم شیرپوینتی

با دستور زیر این عملیات انتقال محتویات به دیتافایل های دیگر به درستی انجام میگیرد. فقط درنظر داشته باشید این عملیات زمان بر میباشد. به این نکته هم باید دقت داشت در حین این کار باید حواستان به LogFile هم باشد چون بزرگ خواهد شد و باید یک فضای مناسب برای آن در نظر گرفت.

دوپینگ شیرپوینت

۳- بعد از انجام موفقیت آمیز این کار ایندکس های آن دیتابیس Fragment می شوند که باید این مشکل را نیز حل کرد که با دستور زیر میتوان وضعیت Fragmentation ایندکس ها را مشاهده کرد.

برای رفع این مشکل هم کافیست تا کوئری زیر را اجرا کنید تا همه ایندکس های دیتا بیس مورد نظر Rebuild شوند.

البته برای Rebuild کردن ایندکس ها میتوانستیم از ابزار Maintenance Plan هم استفاده کرد که در سایت مایکروسافت این کار را به طور کامل انجام داده است.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *