نحوه Rebuild خودکار ایندکس ها از طریق Maintenance Plan
نحوه Rebuild بازسازی خودکار ایندکسها در SQL Server با Maintenance Plan برای کاهش Fragmentation و بهبود عملکرد.
نحوه Rebuild خودکار ایندکسها از طریق Maintenance Plan در SQL Server
با افزایش حجم دادهها و انجام مداوم عملیات درج، حذف و ویرایش اطلاعات در جداول SQL Server، ساختار ایندکسها به مرور زمان دچار Fragmentation یا تکهتکه شدن میشود.
این مسئله میتواند باعث کاهش سرعت اجرای کوئریها، افزایش مصرف منابع سرور و افت عملکرد کلی پایگاه داده شود.
به همین دلیل نگهداری و بهینهسازی ایندکسها یکی از مهمترین وظایف مدیران پایگاه داده محسوب میشود.
SQL Server ابزارهای مختلفی برای مدیریت ایندکسها در اختیار مدیران قرار میدهد. یکی از سادهترین و کاربردیترین روشها برای انجام خودکار عملیات بازسازی ایندکسها، استفاده از Maintenance Plan است.
این قابلیت امکان زمانبندی و اجرای خودکار عملیات نگهداری پایگاه داده را بدون نیاز به نوشتن اسکریپتهای پیچیده فراهم میکند.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
⇐همین حالا شروع کنید و به دنیای دادهها بپیوندید!
ایندکس چیست؟
ایندکس در SQL Server ساختاری است که برای افزایش سرعت جستجو و بازیابی دادهها استفاده میشود.
عملکرد ایندکس مشابه فهرست کتاب است؛ به جای جستجوی تمام صفحات، میتوان مستقیماً به بخش موردنظر دسترسی پیدا کرد.
وجود ایندکس مناسب باعث میشود:
- سرعت اجرای کوئریها افزایش یابد.
- زمان پاسخگویی سیستم کاهش پیدا کند.
- مصرف منابع سرور بهینه شود.
- عملکرد پایگاه داده در حجمهای بالا حفظ شود.
Fragmentation چیست؟
با گذشت زمان و انجام عملیات Insert، Update و Delete، صفحات داده در ایندکسها به شکل نامنظم ذخیره میشوند.
این وضعیت Fragmentation نام دارد.
Fragmentation باعث میشود:
- تعداد عملیات خواندن دیسک افزایش یابد.
- سرعت اجرای Queryها کاهش پیدا کند.
- مصرف CPU و حافظه بیشتر شود.
- کارایی ایندکس افت کند.
انواع Fragmentation
-
Internal Fragmentation
در این حالت فضای خالی زیادی در صفحات ایندکس وجود دارد و صفحات به طور کامل پر نشدهاند. -
External Fragmentation
در این نوع، صفحات ایندکس به صورت پراکنده روی دیسک قرار گرفتهاند و ترتیب منطقی آنها با ترتیب فیزیکی متفاوت است.
Rebuild Index چیست؟
عملیات Rebuild Index باعث ایجاد مجدد ساختار ایندکس میشود. در این فرآیند:
- صفحات ایندکس دوباره مرتب میشوند.
- Fragmentation حذف میشود.
- فضای خالی اضافی آزاد میشود.
- آمار ایندکسها (Statistics) بهروزرسانی میشود.
به عبارت دیگر، Rebuild یک ایندکس جدید ایجاد کرده و سپس جایگزین ایندکس قبلی میکند.
مزایای Rebuild Index در SQL Server
-
افزایش سرعت Queryها
پس از بازسازی ایندکس، دسترسی به دادهها سریعتر انجام میشود. -
حذف Fragmentation
ساختار ایندکس به حالت بهینه بازمیگردد. -
بهروزرسانی Statistics
آمارهای مورد استفاده Query Optimizer نیز بهروزرسانی میشوند. -
بهبود عملکرد سرور
کاهش عملیات I/O باعث بهبود عملکرد کلی SQL Server میشود.
تفاوت Rebuild و Reorganize
| ویژگی | Reorganize | Rebuild |
| حذف کامل Fragmentation | بله | خیر |
| سرعت اجرا | سریعتر | کندتر |
| مصرف منابع | بیشتر | کمتر |
| بروزرسانی Statistics | بله | خیر |
| نیاز به فضای اضافی | بله | خیر |
معمولاً:
- Fragmentation بین 5 تا 30 درصد → Reorganize
- Fragmentation بالاتر از 30 درصد → Rebuild
Maintenance Plan چیست؟
Maintenance Plan ابزاری گرافیکی در SQL Server است که برای زمانبندی عملیات نگهداری پایگاه داده استفاده میشود.
از جمله وظایفی که میتوان با Maintenance Plan انجام داد:
-
Rebuild Index
-
Reorganize Index
-
Backup Database
-
Update Statistics
-
Cleanup Files
-
Check Database Integrity
مزایای استفاده از Maintenance Plan در SQL Server
-
عدم نیاز به کدنویسی
تمام تنظیمات از طریق محیط گرافیکی انجام میشود. -
اجرای خودکار
عملیات نگهداری به صورت زمانبندی شده اجرا میشوند. -
مدیریت آسان
امکان مشاهده و ویرایش وظایف در هر زمان وجود دارد. -
مناسب برای مدیران تازهکار
بدون نیاز به دانش عمیق T-SQL میتوان عملیات نگهداری را پیادهسازی کرد.
فعال بودن SQL Server Agent
قبل از ایجاد Maintenance Plan باید اطمینان حاصل کنید که سرویس SQL Server Agent فعال است.
برای بررسی:
- SQL Server Management Studio را باز کنید.
- بخش SQL Server Agent را مشاهده کنید.
- در صورت توقف، روی آن کلیک راست کرده و گزینه Start را انتخاب نمایید.
ایجاد Maintenance Plan برای Rebuild Index
مرحله اول: ورود به Management Studio
وارد SQL Server Management Studio شوید و به سرور موردنظر متصل شوید.
مرحله دوم: ایجاد Maintenance Plan
از مسیر زیر وارد شوید:
Management
Maintenance Plans
سپس روی Maintenance Plans کلیک راست کرده و گزینه:
New Maintenance Plan
را انتخاب کنید.
مرحله سوم: تعیین نام
یک نام مناسب وارد کنید.
مثال:
Weekly Index Rebuild
یا
Auto Index Maintenance
مرحله چهارم: تنظیم زمانبندی
روی بخش Calendar کلیک کنید.
سپس زمان اجرای Job را مشخص نمایید.
مثال:
- روزانه
- هفتگی
- ماهانه
بسیاری از مدیران پایگاه داده عملیات Rebuild را به صورت هفتگی و در ساعات کمترافیک اجرا میکنند.
مثال:
Sunday
02:00 AM
مرحله پنجم: افزودن Task
از بخش Toolbox گزینه:
Rebuild Index Task
را انتخاب کرده و داخل صفحه Maintenance Plan قرار دهید.
مرحله ششم: تنظیم Rebuild Index
روی Task دوبار کلیک کنید.
پنجره تنظیمات باز خواهد شد.
-
انتخاب پایگاه داده
-
- همه دیتابیسها
- یک دیتابیس خاص
- چند دیتابیس مشخص
مثال:
SalesDB
-
انتخاب جداول
-
- همه جداول
- جداول خاص
-
انتخاب ایندکسها
امکان انتخاب:
All Indexes
یا ایندکسهای خاص وجود دارد.
Fill Factor
در این بخش میتوانید مقدار Fill Factor را تعیین کنید.
مثال:
90%
این مقدار باعث میشود مقداری فضای خالی در صفحات ایندکس باقی بماند تا Fragmentation سریع ایجاد نشود.
Sort Results in TempDB
فعال کردن گزینه:
Sort results in tempdb
میتواند سرعت عملیات Rebuild را افزایش دهد.
Keep Index Online
در نسخههای Enterprise امکان فعال کردن:
Keep index online
وجود دارد.
در این حالت کاربران هنگام بازسازی ایندکس همچنان به دادهها دسترسی خواهند داشت.
ذخیره Maintenance Plan در SQL Server
پس از تکمیل تنظیمات:
Ctrl + S
را فشار دهید یا روی Save کلیک کنید.
در این مرحله SQL Server به صورت خودکار یک Job در SQL Server Agent ایجاد میکند.
بررسی Job ایجاد شده
از مسیر زیر وارد شوید:
SQL Server Agent
Jobs
در این قسمت Job مربوط به Maintenance Plan قابل مشاهده است.
اجرای دستی Job
برای تست عملکرد میتوانید روی Job کلیک راست کرده و گزینه:
Start Job at Step
را انتخاب نمایید.
مشاهده نتیجه اجرا
از مسیر زیر:
SQL Server Agent
Job History
میتوانید وضعیت اجرا را بررسی کنید.
پیغام موفقیت معمولاً به شکل زیر نمایش داده میشود:
The job succeeded.
بررسی میزان Fragmentation قبل از Rebuild
برای مشاهده وضعیت ایندکسها میتوان از DMV زیر استفاده کرد:
SELECT
OBJECT_NAME(object_id) AS TableName,
avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats
(
DB_ID(),
NULL,
NULL,
NULL,
'SAMPLED'
)
بررسی وضعیت پس از Rebuild
پس از اجرای Maintenance Plan مجدداً همان Query را اجرا کنید.
در اغلب موارد میزان Fragmentation به نزدیک صفر میرسد.
بهترین زمان اجرای Rebuild
به دلیل مصرف بالای منابع بهتر است عملیات Rebuild در زمانهای کمترافیک انجام شود.
نمونه زمانهای مناسب:
- نیمه شب
- آخر هفته
- ساعات خارج از زمان کاری
نکات مهم نحوه Rebuild بازسازی خودکار ایندکسها در SQL Server
-
از Backup استفاده کنید
قبل از اجرای عملیات نگهداری، از پایگاه داده نسخه پشتیبان تهیه کنید. -
روی دیتابیسهای بزرگ محتاط باشید
در دیتابیسهای چند صد گیگابایتی، Rebuild میتواند زمان زیادی طول بکشد. -
از مانیتورینگ استفاده کنید
پس از اجرای Maintenance Plan عملکرد سرور را بررسی نمایید. -
Update Statistics را نیز زمانبندی کنید
اگرچه Rebuild آمارها را بهروزرسانی میکند، اما اجرای جداگانه Update Statistics نیز توصیه میشود.
جمعبندی
Rebuild Index یکی از مهمترین عملیاتهای نگهداری در SQL Server است که با حذف Fragmentation و بازسازی ساختار ایندکسها، عملکرد پایگاه داده را بهبود میبخشد.
Maintenance Plan روشی ساده و گرافیکی برای زمانبندی و اجرای خودکار این فرآیند محسوب میشود و بدون نیاز به کدنویسی امکان مدیریت منظم ایندکسها را فراهم میکند.
با ایجاد یک Maintenance Plan مناسب و اجرای منظم آن، میتوان از افت عملکرد پایگاه داده جلوگیری کرد، سرعت اجرای کوئریها را افزایش داد و بهرهوری SQL Server را در طول زمان حفظ نمود.




کاربران ما
شما هم نظرتون با ما دریاره “نحوه Rebuild خودکار ایندکس ها از طریق Maintenance Plan” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید