Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Consulta de índice de reconstrução do SQL Server


Oi

Todos os índices no banco de dados do SQL Server serão fragmentados Depois que as tabelas relacionadas tiverem muitas atualizações, exclua as transações.







Se o índice na tabela estiver fragmentado, todas as transações relacionadas a essa tabela serão muito lentas. Portanto, o SQL Server DBA deve monitorar frequentemente os índices e quais dos índices estão fragmentados e quais não são como a captura de tela a seguir.







Você pode verificar o índice fragmentado com o seguinte script. Digite o nome do banco de dados SQL Server está corretamente na primeira linha, então a 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;