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}