Hoe indexen opnieuw te organiseren en te herbouwen in MS SQL?

Indexen zijn de objecten van MS SQL-databasebestanden. Deze schema-objecten fungeren als een inhoudsopgave van de database. Ze worden gebruikt om de gegevensopvragingsbewerkingen op een MS SQL-databasetabel te verbeteren.

Met de tijd kan de tabel echter fragmenteren als gevolg van voortdurende INSERT en UPDATE-bewerkingen. Net als andere objecten zijn indexen ook vatbaar voor beschadiging. Als de indexen beschadigd raken, kunt u fouten ontvangen zoals:

Plain Text

 

Om de fouten die verband houden met beschadiging in indexen op te lossen of wanneer het fragmentatieniveau van de indexen toeneemt, kunt u de indexen opnieuw opbouwen of herorganiseren. In dit artikel zullen we bespreken hoe u de indexen in MS SQL Server kunt herorganiseren en herbouwen. We zullen ook een geavanceerd MS SQL-databasereparatiehulpprogramma noemen dat indexen en andere objecten snel en met volledige precisie kan herstellen uit beschadigde SQL-databasebestanden.

Controleer het Fragmentatiepercentage van Indexen

Voordat u de indexen herorganiseert, moet u het percentage fragmentatie weten. U kunt de onderstaande opdracht gebruiken om het percentage fragmentatie van de index te controleren:

SQL

 

Indexen Herorganiseren in SQL Server

Als het fragmentatieniveau van de index tussen 10 en 30 ligt, wordt aanbevolen om de index te herorganiseren. U kunt de volgende code in T-SQL gebruiken om de index te herorganiseren:

SQL

 

Je kunt ook SQL Server Management Studio (SSMS) gebruiken om de indexen te reorganiseren. Volg de onderstaande stappen:

  • Verbind in SSMS met je SQL Server-instantie.
  • Open in Object Explorer de database.
  • Open de map Tabellen en vervolgens de map Indexen.
  • Klik met de rechtermuisknop op de index die je wilt reorganiseren en klik vervolgens op Reorganiseren.

Indexen herbouwen in MS SQL

Als de fragmentatie hoger is, kun je de indexen herbouwen. Je kunt het DBCC DBREINDEX-commando gebruiken om een index te herbouwen. Zo voer je dit commando uit:

SQL

 

Dit commando ondersteunt geen ruimtelijke indexen en geheugen-geoptimaliseerde kolomopslag. 

Je kunt ook het ALTER INDEX-commando gebruiken:

SQL

 

Je kunt de indexen ook herbouwen met de grafische gebruikersinterface in SSMS. Volg deze stappen:

  • In SSMS, in Object Explorer, open de database met de tabel waarop je een index wilt herbouwen.
  • Open de map Tabellen en vervolgens de tabel waarop je een index wilt herbouwen.
  • Open de map Indexen, klik met de rechtermuisknop op de index die je wilt herbouwen en selecteer Herbouwen.

Herstel de SQL Server Database

Als het reorganiseren of opnieuw opbouwen van de indexen niet werkt, dan kun je de DBCC CHECKDB opdracht proberen met de REPAIR_ALLOW_DATA_LOSS optie om de database te repareren. Hier is hoe je deze opdracht gebruikt:

Eerst verander je de modus van de database naar SINGLE_USER met de onderstaande opdracht:

SQL

 

Vervolgens voer je de DBCC CHECKDB opdracht uit zoals hieronder gegeven om de database te repareren:

SQL

 

Na de reparatie stel je de database modus in op MULTI_USER door de onderstaande opdracht uit te voeren:

SQL

 

De bovenstaande DBCC CHECKDB opdracht kan je helpen om alle fouten die verband houden met corruptie in indexen op te lossen. Het kan zowel geclusterde als niet-geclusterde indexen in SQL-databases repareren. Het garandeert echter geen volledige gegevensherstel en kan leiden tot gegevensverlies. Om gegevensverlies te voorkomen, kun je professionele MS SQL-repairtools gebruiken. Deze zijn ontworpen met geavanceerde algoritmen om alle objecten, inclusief geclusterde en niet-geclusterde indexen, opgeslagen procedures, triggers, enz., uit de corrupte database te herstellen.

Conclusie

Je kunt indexfragmentatie verminderen door de index te reorganiseren of opnieuw op te bouwen. In dit artikel hebben we uitgelegd hoe je het fragmentatiepercentage in indexen kunt controleren en hoe je de indexen opnieuw kunt opbouwen.

Source:
https://dzone.com/articles/reorganize-and-rebuild-indexes-in-ms-sql