Index fragmentasyonunu gör
SQL ServerBakımKomut
SELECT OBJECT_SCHEMA_NAME(ips.object_id) AS sema,
OBJECT_NAME(ips.object_id) AS tablo,
i.name AS indeks,
ips.index_type_desc,
ROUND(ips.avg_fragmentation_in_percent,1) AS frag_pct,
ips.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(N'Musteri'), 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
ORDER BY ips.avg_fragmentation_in_percent DESC;Ne yapar?
Index'lerin fragmentasyon yüzdesini ve sayfa sayısını listeler; rebuild/reorganize kararına temel oluşturur.
Ne zaman kullanılır?
Bakım öncesi hangi index'lerin ele alınacağını belirlemek için.
Dikkat
Küçük index'lerde (< 1000 sayfa) fragmentasyon önemsizdir, filtrelendi. 'DETAILED' modu daha doğru ama çok pahalıdır; 'LIMITED' genelde yeterli. Sadece sorgu; risksiz.