Hej
Alla index i SQL Server-databasen kommer att fragmenteras Efter att relaterade tabeller har fått många uppdateringar, radera transaktioner.
Om indexet i tabellen är fragmenterat kommer alla transaktioner relaterade till den tabellen att vara mycket långsamma. Så SQL Server DBA bör ofta övervaka index och vilka index som är fragmenterade och vilka som inte är som följande skärmdump.
Du kan kontrollera fragmenterat index med följande skript. Skriv SQL Server Database-namnet är korrekt på första raden, så kommer frågan att hitta fragmenterade index.
declare @db int select @db=DB_ID('DEVECI')
select 'ALTER INDEX [' + i.name +'] on '+OBJECT_NAME(s.object_id)+' REBUILD WITH (ONLINE = ON)', objname = OBJECT_NAME(s.object_id), s.object_id, index_name= i.name, index_type_desc, avg_fragmentation_in_percent from sys.dm_db_index_physical_stats(@db,null,null,null,null) as s join sys.indexes i on i.object_id = s.object_id and i.index_id = s.index_id where avg_fragmentation_in_percent>30 order by avg_fragmentation_in_percent desc, page_count desc;