Zjištění míry fragmentace indexů napříč je základní předpoklad pro volbu vhodné strategie optimalizace indexů pomocí rebuild/reorganize operací. Všechny podstatné informace lze získat využitím systémové funkce sys.dm_db_index_physical_stats() a jejím spojením se systémovými pohledy, které nám poskytnou dodatečné informace nutné pro identifikaci indexu.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GO
SELECT o.name TableName, ips.index_id IndexId, i.name IndexName,
ips.avg_fragmentation_in_percent AS ExtFragmentation,
ips.avg_page_space_used_in_percent AS IntFragmentation
FROM ( SELECT object_id, index_id,
avg_fragmentation_in_percent, avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED')
WHERE index_id <> 0
) AS ips
INNER JOIN sys.indexes i ON i.object_id = ips.object_id AND i.index_id = ips.index_id
INNER JOIN sys.all_objects o ON ips.object_id = o.object_id
ORDER BY avg_fragmentation_in_percent DESC

Přehled indexů s interní a externí fragmentací – příklad po spuštění nad msdb
