dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #44
sqlserver
Maintenanceread-only (LIMITED modu)Min Version: 2008

SQL Server İndeks Fragmentasyonu ve Rebuild/Reorganize Önerisi

Büyük indekslerde fragmentasyon yüzdesini ölçer ve rebuild ya da reorganize önerir. Bakım penceresini gereksiz işlerle doldurmadan planlamanızı sağlar.

#fragmentation#rebuild#reorganize#index
sqlserver · sql
-- Mevcut veritabanında çalıştırın
SELECT TOP 50
       OBJECT_SCHEMA_NAME(ips.object_id) AS schema_name,
       OBJECT_NAME(ips.object_id)        AS table_name,
       i.name AS index_name,
       ips.avg_fragmentation_in_percent,
       ips.page_count,
       CASE WHEN ips.avg_fragmentation_in_percent >= 30 THEN 'REBUILD'
            ELSE 'REORGANIZE' END AS suggestion
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'LIMITED') ips
JOIN sys.indexes i ON i.object_id = ips.object_id AND i.index_id = ips.index_id
WHERE ips.avg_fragmentation_in_percent > 10
  AND ips.page_count > 1000
  AND i.index_id > 0
ORDER BY ips.avg_fragmentation_in_percent DESC;
Operasyonel Notlar & İyileştirme Aksiyonu

Üretim ortamında çalıştırmadan önce test ortamında doğrulayın. Salt okunur teşhis sorgusudur; sistem kilitlerine yol açmaz.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 2008) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.