sql >> Base de Datos >  >> RDS >> Sqlserver

Consulta de índice de reconstrucción de SQL Server

Hola

Todos los índices en la base de datos de SQL Server se fragmentarán Después de que las tablas relacionadas se actualicen, elimine las transacciones.

Si el índice de la tabla está fragmentado, todas las transacciones relacionadas con esa tabla serán muy lentas. Por lo tanto, el DBA de SQL Server debe monitorear con frecuencia los índices y cuáles de los índices están fragmentados y cuáles no son como la siguiente captura de pantalla.

Puede verificar el índice fragmentado con el siguiente script. Escriba el nombre de la base de datos de SQL Server correctamente en la primera línea, luego la consulta encontrará índices fragmentados.

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;