نحوه Rebuild خودکار ایندکس ها از طریق Maintenance Plan

نحوه Rebuild خودکار ایندکس ها از طریق Maintenance Plan

نوشته شده توسط: ایمان باقری
۱۱ بهمن ۱۴۰۰
زمان مطالعه: 11 دقیقه
۵
(۱)

مقدمه

همانطور که می دانید اگر در یک جدول ایندکس های مناسب ایجاد گردد میتواند سرعت واکشی داده­ها را افزایش دهد. ایجاد ایندکس های بهینه نیاز به تجربه و شناسایی گزارشات مورد نظر سازمان دارد. از این رو اگر نیازسنجی بدرستی صورت نگیرد باعث ایجاد ایندکس های غیر مفید در دیتابیس شده که این امر نه تنها کمکی به افزایش کارایی سیستم نمی­کند بلکه باعث کندتر شدن واکشی داده­ها می­شود. از سوی دیگر، وجود ایندکس به نگهداری نیز نیاز دارد تا بتواند بهترین کارایی را داشته باشد. در واقع اگر در یک جدول عملیات DML صورت گیرد، ایندکس­های موجود دچار Defragment می­شود و به تبع آن باعث کاهش کارایی سیستم خواهد شد. بنابراین لازم است تا در زمان­های مناسب عملیات Rebuild کردن ایندکس صورت گیرد. یکی از روش های Rebuild نمودن ایندکس ها استفاده از Maintenance Plan در SQL Server می­باشد. برای انجام این کار مراحل ذیل را خواهیم داشت:

۱- در ابتدا یک plan تعریف کنید.

۲- کامپوننت Rebuild index Task را اضافه نمایید.

۳- همانند شکل زیر وارد بخش Edit شوید تا تنظیمات لازم را بتوان انجام داد.

۴- در بخش بعد لازم است تا تنظیمات مربوط به Connection، انتخاب دیتابیس و جدول را انجام دهید.

بخش Free space options

Free space per page:

اگر این گزینه را انتخاب کنید با توجه به مقدار پیش فرض Fill Factor عملیات Rebuild صورت میگیرد و درخت BTree تشکیل می­گردد.

Change free space per page:

میتوان تعیین کرد چه مقدار از Pageهای مربوط به درخت BTree خالی بماند.

بخش Advanced options

Sort result in TempDB:

اگر این گزینه را انتخاب کنید به SQL Server اعلام می­کنید از دیتابیس tempDB برای انجام عملیات میانی (محاسبات و پردازش های میانی) Rebuild ایندکس استفاده کند. دقت کنید دیتابیس TempDB به اندازه کافی فضای کافی را دارا باشد.

MAX DOP:

با تنظیم این مقدار تعیین می­کنیم برای Rebuild نمودن ایندکس از چند Cpu Core همزمان استفاده شود. شما می­توانید با توجه به زمانبدی Job ها یا Task های موجود در سیستم این مقدار را تعیین کنید.

Keep Index Online:

با تنظیم این مقدار تعیین می­کنیم عملیات Rebuild ایندکس بصورت Online انجام گیرد. Online Rebuild بدین صورت است که در اثنای کار جدول مربوطه Lock نمی­شود و سایر Task ها می­توانند بدون توقف در صف پردازش گردد. به این نکته دقت کنید عملیات Online Rebuild باعث کندی در انجام Rebuild می گردد و مدت زمان Rebuild را افزایش می­دهد.

بخش Index Stats options

Scan type :

زمانی که Rebuild ایندکس را انجام می­دهید Statistics های جدول نیز آپدیت می­شود. با تنظیم این گزینه تعیین می­کنید SQL Server با چه مقدار از دیتاهای موجود Statistics ها را بروزرسانی نماید.

Optime index condition:

از آنجایی که عملیات Rebuild ایندکس می­تواند باعث کندی دیتابیس گردد با تنظیم این گزینه می­توان تعیین کرد عملیات Rebuild پس از چه مقدار Fragmentation صورت گیرد.

پس از آنکه تنظیمات گفته شده را انجام دادید نوبت ان است تا زمانبندی اجرای انرا تعیین کنید. برای این کار همانند شکل زیر گزینه مربوط به Schedule را انتخاب نمایید.

سپس همانند شکل زیر تنظیمات زمانبندی آنرا تعیین کنید.

پس از تنظیم زمانبندی اجرای کار می¬توانید کل Maintenance Plan را ذخیره نمایید. در نهایت خواهید دید در دو بخش گزینه های مربوط به Plan و Schedule آن رویت می شود.

نکته: دقت شود اگر سرویس Agent مربوط به SQL Server در حال اجرا نباشد با خطا مواجه خواهید شد زیرا عملیات تنظیم Job از این سرویس استفاده می¬کند و بدون آن SQL Server اجازه ایجاد Plan را نخواهد داد.

چه رتبه ای می‌دهید؟

میانگین ۵ / ۵. از مجموع ۱

اولین نفر باش

title sign
معرفی نویسنده
ایمان باقری
مقالات
6 مقاله توسط این نویسنده
محصولات
5 دوره توسط این نویسنده
ایمان باقری

ایمان باقری بیش از 10 سال است که بصورت حرفه‌ای با SQL Server کار می‌کند. و مدرس دوره‌های SQL Server در نیک آموز می‌باشد.

  • مشاور و متخصص در هوش تجاری و SQL Server
  • توسعه دهنده داشبورد های مدیریتی شرکت سام سرویس (سامسونگ)
  • طراحی و توسعه سیستم انبار داده حوزه بانکی
  • طراحی و پیاده سازی سیستم های تحلیلی و گزارشی
پروفایل نویسنده
title sign
دیدگاه کاربران