Zuhause Datenbanken Was macht die Defragmentierung für SQL-Systeme?

Was macht die Defragmentierung für SQL-Systeme?

Anonim

Q:

Was macht die Defragmentierung für SQL-Systeme?

EIN:

Kontinuierliche Datenbankwartung und -überwachung sind die Schlüsselelemente für den reibungslosen Betrieb eines SQL-Systems. Beim Erstellen und Auffüllen einer Datenbank werden die Daten zunächst an einem zusammenhängenden physischen Speicherort abgelegt (sofern ausreichend zusammenhängender physischer Speicherplatz verfügbar ist). In diesem Fall ist es wahrscheinlich, dass die logische Reihenfolge und die physische Reihenfolge der Daten ähnlich sind, und dies erhöht die Leistung.

Wenn die Daten geändert, gelöscht oder aktualisiert werden, werden relevante Indizes ebenfalls automatisch aktualisiert, um diese Änderungen widerzuspiegeln. Infolgedessen werden die Indizes fragmentiert und die Informationen über den Speicherbereich verteilt. Dadurch wird die physische Reihenfolge der Daten geändert (da die zusammenhängende Zuordnung verloren geht) und das Abrufen wird zeitaufwändig, was zu einer langsamen Datenbankleistung führt.

Die Lösung für dieses Problem ist die regelmäßige Defragmentierung. Durch die Defragmentierung werden die Indizes tatsächlich neu erstellt oder organisiert, um die logische Reihenfolge der Daten mit der physischen Reihenfolge abzugleichen. Vor der Defragmentierung sollten alle Indizes ordnungsgemäß analysiert werden. Die Analyseergebnisse bestimmen, ob eine Reorganisation oder ein Neuaufbau erforderlich ist.

Die zwei Hauptoperationen, die durch den Defragmentierungsprozess ausgeführt werden, sind:

  • Indexreorganisation - Die Indexreorganisation wird durchgeführt, wenn die Fragmentierung niedrig ist und die Leistung nicht stark beeinträchtigt wird. Dieser Prozess führt tatsächlich die physische Neuordnung von Seiten auf Blattebene durch, um sie der logischen Reihenfolge anzupassen. Es werden keine neuen Seiten erstellt. Es werden nur die vorhandenen Seiten neu angeordnet. Die Reorganisation kann durchgeführt werden, während das System online ist, ohne den normalen Datenbankbetrieb zu blockieren.
  • Indexwiederherstellung - Die Indexwiederherstellung wird durchgeführt, wenn sich die Fragmentierung auf einer tieferen Ebene befindet und die Leistung zu langsam ist. In diesem Prozess wird der ursprüngliche Index gelöscht und ein neuer Index erstellt. So werden die physische und logische Reihenfolge auf die ursprünglichen Positionen zurückgesetzt und die Leistung verbessert sich auf vielfältige Weise. Durch den Neuaufbau können bei Bedarf auch neue Seiten erstellt und im Offline- oder Online-Modus ausgeführt werden.

Daher sollte die Defragmentierung Teil des SQL Server-Wartungsprozesses sein und muss ernst genommen werden. Ein geeigneter Plan für die Abfrageanalyse muss erstellt und befolgt werden. Basierend auf der Ausgabe der Abfrageanalyse muss der Index neu erstellt oder neu organisiert werden. Kurz gesagt, Defragmentierung ist für die Leistungsverbesserung von SQL-Systemen unerlässlich.

Was macht die Defragmentierung für SQL-Systeme?