DBAtlas · Veritabanı operasyon atlası

Index fragmentasyonunu gör

SQL ServerBakım

Komut

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.

DBAtlas'ta aç →

İlgili