Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requête d'index de reconstruction SQL Server

Salut

Tous les index de la base de données SQL Server seront fragmentés Une fois que les tables associées auront reçu de nombreuses mises à jour, supprimez les transactions.

Si l'index de la table est fragmenté, toutes les transactions liées à cette table seront très lentes. Ainsi, l'administrateur de base de données SQL Server doit fréquemment surveiller les index et déterminer lesquels des index sont fragmentés et lesquels ne ressemblent pas à la capture d'écran suivante.

Vous pouvez vérifier l'index fragmenté avec le script suivant. Tapez le nom de la base de données SQL Server correctement sur la première ligne, puis la requête trouvera les index fragmentés.

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;