DB2-Datenbanken: Methoden zur Reorganisation

DB2-Datenbanken fragmentieren im Laufe der Zeit. IBM empfiehlt daher das Reorganisieren der Datenbank, um die Löcher zu schließen. Dazu gibt es zwei Verfahren.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Lesezeit: 16 Min.
Von
  • Bjørn Nachtwey
Inhaltsverzeichnis

Bei längerem Betrieb entstehen in DB2-Datenbanken ungenutzte Lücken, die Platz kosten. Das lässt sich leicht nach dem Import einer Datenbank auf einen anderen Server sehen: Dort ist sie kleiner als bisher. Ursache für die Lücken sind DML-Befehle (Data Manipulation Language) wie INSERT, UPDATE und DELETE im operativen Betrieb.

Löscht zum Beispiel DELETE Datensätze aus einem Block in einer Tabelle, reißt dies eine Lücke in diesem Block. Beim Einfügen neuer Daten wiederum reserviert der Datenbankserver in bestimmten Fällen Platz, indem er die folgenden Zeilen in einen anderen Block verschiebt. Dabei versucht er, den benötigten Platz durch einen Standardwert abzuschätzen. Das geht zwar schnell, allerdings verbleiben hierdurch viele kleine freie Lücken. Nur beim Einfügen am Ende eines Datenblocks mit ausreichend Raum oder wenn zusammenhängende Löcher groß genug sind, muss das Datenbanksystem keinen weiteren Platz zuweisen. In diesem Fall schrumpfen die Löcher.

Mehr zu Datenbanken

Auch ein Befehl zum Aktualisieren reserviert zusätzlichen Platz: Der Server dupliziert die alten Daten, aktualisiert die Kopie und referenziert danach den neuen Datensatz. Das ermöglicht Rollbacks von Änderungen, doch beim abschließenden Löschen der alten Daten entsteht wieder eine Lücke. Lücken zu beseitigen, spart Platz und erhöht die Leistung im laufenden Betrieb. Nach der Defragmentierung muss man den dann unnötig reservierten Platz freigeben, was bei einer DB2 der Befehl alter tablespace erledigt.

Das war die Leseprobe unseres heise-Plus-Artikels "DB2-Datenbanken: Methoden zur Reorganisation". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.