Ciao
Tutti gli indici nel database di SQL Server verranno frammentati Dopo che le tabelle correlate hanno ricevuto molti aggiornamenti, eliminare le transazioni.
Se l'indice nella tabella è frammentato, tutte le transazioni relative a quella tabella saranno molto lente. Quindi il DBA di SQL Server dovrebbe monitorare frequentemente gli indici e quali indici sono frammentati e quali non sono come lo screenshot seguente.
Puoi controllare l'indice frammentato con il seguente script. Digitare il nome del database di SQL ServerSQL Server è corretto nella prima riga, quindi la query troverà gli indici frammentati.
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;