Index bakımı, etkisi en geç fark edilen bakım kalemi. Sistem bir günde yavaşlamıyor; aylar içinde kayıyor ve kimse tek bir sebebe işaret edemiyor.
Parçalanma nedir?
Kayıt eklendikçe ve silindikçe index sayfaları düzensizleşiyor. SQL Server aynı veriye ulaşmak için daha çok sayfa okumak zorunda kalıyor.
Mikro gibi yoğun hareket üreten sistemlerde bu, birkaç ay içinde ölçülebilir hale geliyor.
Önce ölçün
En sık yapılan hata, ölçmeden bakım yapmak. Parçalanma %5’in altındayken yapılan rebuild, hiçbir fayda sağlamadan sunucuya yük bindiriyor.
sys.dm_db_index_physical_stats görünümü size gerçek oranı veriyor. Karar bu
sayıya göre verilmeli.
Reorganize mi rebuild mi?
Karar tek bir sayıya bağlı: ölçülen parçalanma oranı. Hangi aralıkta hangi eylemin doğru olduğunu ve her birinin kısıtını bu sayfadaki karar ölçeği gösteriyor.
Enterprise Edition kullanıyorsanız rebuild çevrimiçi de yapılabiliyor, ancak çoğu KOBİ kurulumunda Standard Edition var.
İstatistikleri unutmayın
Index bakımı yapıldıktan sonra istatistiklerin güncellenmesi gerekiyor. Güncel olmayan istatistikler, SQL Server’ın yanlış sorgu planı seçmesine yol açıyor — bu da parçalanmadan daha büyük yavaşlık üretebiliyor.
Planı kurun ve çalıştığını doğrulayın
Bakım planının tanımlı olması yetmiyor; gerçekten çalıştığının düzenli kontrol edilmesi gerekiyor. Sessizce başarısız olan bir bakım işi, hiç olmamasıyla aynı sonucu veriyor.
Karar ölçeği
Parçalanma oranına göre karar
Ölçülen: Parçalanma oranı (%)
Basamak yüksekliği yalnızca kademe sırasını gösterir; genişlikler aralıklarla oranlıdır.
| Parçalanma oranı | Eylem | Kısıt |
|---|---|---|
| %5 altı | Müdahale etmeyin | Gereksiz yük üretir |
| %5 – %30 | REORGANIZE | Çevrimiçi çalışır, kilitleme yapmaz |
| %30 üzeri | REBUILD | Standard Edition’da tabloyu kilitler — mesai dışına planlayın |
Adım adım
- Parçalanma oranını sys.dm_db_index_physical_stats görünümüyle ölçün — tahmin etmeyin.
- Parçalanma %5'in altındaysa hiçbir şey yapmayın; müdahale gereksiz yük üretir.
- %5 ile %30 arasında REORGANIZE uygulayın; çevrimiçi çalışır ve kilitleme yapmaz.
- %30 üzerinde REBUILD uygulayın; Standard Edition’da tablo kilitlenir, bu yüzden mesai dışına planlayın.
- Bakımdan sonra istatistikleri güncelleyin.
- İşlemi haftalık bir bakım planına bağlayın ve çalıştığını düzenli doğrulayın.
Çözemediyseniz bakalım
Hata mesajının tam metnini ve ne zaman başladığını iletin; hangi katmandan geldiğini söyleyelim. Mikro’yu bizden almamış olmanız fark etmiyor.
Yanıt süremiz: aynı gün içinde.
Sık sorulan sorular
-
Sorgular zamanla yavaşlar. Yavaşlama kademeli olduğu için kimse tek bir güne işaret edemez; kullanıcılar sadece 'program eskisi kadar hızlı değil' der.
-
REORGANIZE sırasında evet. REBUILD, SQL Server Standard Edition’da tabloyu kilitler; bu yüzden mesai dışında yapılır.
-
Kurulumda bizim kurduğumuz sistemlerde bakım planı baştan tanımlanıyor. Devraldığımız sistemlerde ilk kontrol ettiğimiz şeylerden biri de bu oluyor.