sql >> Database >  >> RDS >> Sqlserver

SQL Server Rebuild Index Query

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;



  1. PostgreSQL DISTINCT ON met verschillende ORDER BY

  2. Supersnel de opdrachtregel van de mysql-database importeren

  3. MySql werkt twee tabellen tegelijk bij

  4. het uitvoeren van datetime-gerelateerde bewerkingen in PHP