Kontrollera fragmenteringsgrad på index

by Martin 22. May 2010 12:02
Nedanstående skript lista index fysiska fragmenteringsgrad, mest fragmenterad först Om fragementeringsgrad i procent är mindre än 10% tas den ej med Rekommendationen är att om frag är mellan 10-30% kör en REORGANIZE, om >30% kör REBUILD (kan göras med detta script: [Bygg om alla index i databasen]) OBS på små tabeller (dvs om Page_count är lågt, <10) så kan man få höga procentsiffror på fragmenteringen ändå, men då är fragmentering ändå inget problem {code:sql} SELECT 'objectname' = o.Name , 'indexname' = i.NAME , phys.avg_fragmentation_in_percent , phys.fragment_count , phys.page_count , 'record_count' = (SELECT sum(row_count) FROM sys.dm_db_partition_stats ps WHERE ps.index_id < 2 AND ps.object_id =phys.object_id) , phys.index_type_desc , 'schemaname' = s.NAME , 'partitionnum' = phys.partition_number FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') AS phys INNER JOIN sys.objects AS o ON o.OBJECT_ID=phys.object_id INNER JOIN sys.schemas as s ON s.schema_id = o.SCHEMA_ID INNER JOIN sys.indexes AS i ON i.OBJECT_ID=phys.OBJECT_ID AND i.index_id=phys.index_id WHERE phys.index_id > 0 AND phys.avg_fragmentation_in_percent > 10.0 ORDER BY phys.avg_fragmentation_in_percent desc; {code:sql}