Wie man Indizes in MS SQL reorganisiert und neu aufbaut?

Indizes sind die Objekte von MS SQL-Datenbankdateien. Diese Schemaobjekte fungieren wie ein Inhaltsverzeichnis der Datenbank. Sie werden verwendet, um die Datenabrufoperationen auf einer MS SQL-Datenbanktabelle zu verbessern.

Mit der Zeit kann die Tabelle jedoch aufgrund kontinuierlicher INSERT– und UPDATE-Operationen fragmentiert werden. Wie andere Objekte sind auch Indizes anfällig für Korruption. Wenn die Indizes beschädigt sind, können Fehler auftreten wie:

Plain Text

 

Um die mit der Korruption von Indizes verbundenen Fehler zu beheben oder wenn der Fragmentierungsgrad der Indizes zunimmt, können Sie die Indizes neu erstellen oder neu organisieren. In diesem Artikel werden wir diskutieren, wie Sie die Indizes in MS SQL Server neu organisieren und wieder aufbauen. Wir werden auch ein fortgeschrittenes MS SQL-Datenbankreparaturtool erwähnen, mit dem Indizes und andere Objekte aus beschädigten SQL-Datenbankdateien schnell und präzise wiederhergestellt werden können.

Überprüfen des Fragmentierungsprozentsatzes von Indizes

Bevor Sie die Indizes neu organisieren, müssen Sie den Fragmentierungsprozentsatz kennen. Sie können den folgenden Befehl verwenden, um den Prozentsatz der Indexfragmentierung zu überprüfen:

SQL

 

Indizes in SQL Server neu organisieren

Wenn der Fragmentierungsgrad des Indexes zwischen 10 und 30 liegt, wird empfohlen, den Index neu zu organisieren. Sie können den folgenden Code in T-SQL verwenden, um den Index neu zu organisieren:

SQL

 

Alternativ können Sie das SQL Server Management Studio (SSMS) verwenden, um die Indizes neu zu organisieren. Befolgen Sie die folgenden Schritte:

  • In SSMS eine Verbindung mit Ihrer SQL Server-Instanz herstellen.
  • Im Objekt-Explorer die Datenbank erweitern.
  • Den Ordner Tabellen erweitern und dann den Ordner Indizes.
  • Mit der rechten Maustaste auf den Index klicken, den Sie neu organisieren möchten, und dann auf Neu organisieren klicken.

Indizes in MS SQL neu erstellen

Wenn die Fragmentierung höher ist, können Sie die Indizes neu erstellen. Sie können den Befehl DBCC DBREINDEX verwenden, um einen Index neu zu erstellen. So führen Sie diesen Befehl aus:

SQL

 

Dieser Befehl unterstützt keine räumlichen Indizes und speicheroptimierten Spaltenstore-Indizes.

Alternativ können Sie den Befehl ALTER INDEX verwenden:

SQL

 

Sie können die Indizes auch über die grafische Benutzeroberfläche in SSMS neu erstellen. Hier sind die Schritte:

  • In SSMS im Objekt-Explorer die Datenbank erweitern, die die Tabelle enthält, für die Sie einen Index neu erstellen müssen.
  • Den Ordner Tabellen erweitern und dann die Tabelle, für die Sie einen Index neu erstellen müssen.
  • Den Ordner Indizes erweitern, mit der rechten Maustaste auf den Index klicken, den Sie neu erstellen müssen, und Neu erstellen auswählen.

Reparieren Sie die SQL Server-Datenbank

Wenn das Neuorganisieren oder Wiederaufbauen der Indizes nicht funktioniert, können Sie versuchen, den Befehl DBCC CHECKDB mit der Option REPAIR_ALLOW_DATA_LOSS auszuführen, um die Datenbank zu reparieren. So verwenden Sie diesen Befehl:

Zuerst ändern Sie den Modus der Datenbank in SINGLE_USER mit dem folgenden Befehl:

SQL

 

Führen Sie dann den Befehl DBCC CHECKDB wie unten angegeben aus, um die Datenbank zu reparieren:

SQL

 

Nach der Reparatur setzen Sie den Datenbankmodus auf MULTI_USER durch Ausführen des folgenden Befehls:

SQL

 

Der oben genannte Befehl DBCC CHECKDB kann Ihnen helfen, alle Fehler zu beheben, die mit Korruption in Indizes zusammenhängen. Er kann sowohl gruppierte als auch nicht gruppierte Indizes in SQL-Datenbanken reparieren. Es garantiert jedoch keine vollständige Datenwiederherstellung und kann zu Datenverlust führen. Um Datenverlust zu vermeiden, können Sie professionelle MS SQL-Reparaturtools verwenden. Sie sind mit fortgeschrittenen Algorithmen konzipiert, um alle Objekte, einschließlich gruppierte und nicht gruppierte Indizes, gespeicherte Prozeduren, Trigger usw., aus der korrupten Datenbank wiederherzustellen. 

Fazit

Sie können die Indexfragmentierung reduzieren, indem Sie den Index neu organisieren oder wiederaufbauen. In diesem Artikel haben wir erklärt, wie Sie den Fragmentierungsprozentsatz in Indizes überprüfen und die Indizes neu aufbauen können.

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