Veritabanını sağlıklı tutan düzenli işler ve zamanlanması.
Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.
Düzenli bakım işleri
| İş | Neden? | Sıklık (tipik) |
| İndeks bakımı | Ekleme ve silmelerle sayfalar parçalanır, okuma artar | Haftalık |
| İstatistik güncelleme | Optimizer satır sayısını doğru tahmin etsin | Günlük / haftalık |
Bütünlük kontrolü (DBCC CHECKDB) | Disk kaynaklı bozulmaları erken yakala | Haftalık |
| Yedekler | Önceki ders | Stratejiye göre |
| Geçmiş temizliği | msdb'deki eski yedek/iş geçmişi | Aylık |
İndeks parçalanması
SELECT OBJECT_NAME(ps.object_id) AS tablo,
i.name AS indeks,
ps.avg_fragmentation_in_percent AS parcalanma,
ps.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'LIMITED') ps
JOIN sys.indexes i ON i.object_id = ps.object_id AND i.index_id = ps.index_id
WHERE ps.page_count > 1000
ORDER BY parcalanma DESC;
| Parçalanma | Önerilen işlem (genel kural) |
| %5–30 | ALTER INDEX ... REORGANIZE (çevrimiçi, hafif) |
| %30 üzeri | ALTER INDEX ... REBUILD (Enterprise'da ONLINE = ON) |
| 1000 sayfadan küçük | Uğraşmaya değmez |
Modern görüşSSD disklerde parçalanmanın etkisi azaldı; birçok uzman artık sık REBUILD yerine düzenli istatistik güncellemesini daha önemli buluyor. Kararı ölçerek ver.
ALTER INDEX ix_orders_date ON dbo.orders REORGANIZE;
ALTER INDEX ALL ON dbo.order_items REBUILD WITH (ONLINE = ON);
UPDATE STATISTICS dbo.orders WITH FULLSCAN;
DBCC CHECKDB (anadolu) WITH NO_INFOMSGS;
Zamanlama: SQL Server Agent
Bakım işleri SQL Server Agent işleri (job) olarak zamanlanır: adımlar, zamanlama ve hata durumunda operatöre e-posta. Topluluğun yaygın kullandığı hazır çözüm Ola Hallengren'in bakım betikleridir. Azure SQL Database'de Agent yoktur; Elastic Jobs veya Azure Automation kullanılır.
| SQL türü | Karşılık |
| PostgreSQL | VACUUM (ölü satırları temizler, MVCC gereği), ANALYZE (istatistik), autovacuum; zamanlama için pg_cron |
| MySQL | OPTIMIZE TABLE, ANALYZE TABLE; zamanlama için Event Scheduler |
| Oracle | Otomatik istatistik toplama (DBMS_STATS), DBMS_SCHEDULER |