Hallo
Alle indexen in de SQL Server-database zullen worden gefragmenteerd. Nadat gerelateerde tabellen veel zijn bijgewerkt, verwijdert u transacties.
Als de index in de tabel gefragmenteerd is, zullen alle transacties met betrekking tot die tabel erg traag zijn. Dus SQL Server DBA moet regelmatig indexen controleren en welke indexen gefragmenteerd zijn en welke niet zoals het volgen van een screenshot.
U kunt de gefragmenteerde index controleren met het volgende script. Typ SQL Server Database naam is correct in de eerste regel, dan zal de query gefragmenteerde indexen vinden.
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;