Reorganisation von Oracle-Datenbanken

Lesezeit
2 Minuten
Bis jetzt gelesen

Reorganisation von Oracle-Datenbanken

12.01.2011 - 13:00
Veröffentlicht in:
Im Oracle-Umfeld wird das Thema Reorganisation von Objekten - sowohl was Tabellen als auch was Indizes angeht - seit vielen Jahren kontrovers diskutiert. Dieser Fachartikel geht der Frage nach, aus welchen Gründen überhaupt reorganisiert werden muss, und beschreibt, welche Werkzeuge sich dafür nutzen lassen. Dabei stehen insbesondere die Themen Offline- oder Online-Reorganisation und die schnelle Reorganisation von Objekten oder ganzen Gruppen im Vordergrund.
Es klingt zunächst logisch, dass nicht mehr benötigte Bereiche der Datenbank wieder freigegeben werden. In der Praxis wachsen Datenbanken allerdings kontinuierlich, "nicht mehr benötigter Platz" ist eher selten. Dennoch lohnt es sich, freie Bereiche im Auge zu behalten: Denn diese vergrößern unter Umständen auch den benötigten Platz für eine Sicherung der Datenbank und verlängern damit Backup- und Recovery-Zeiten. Außerdem lässt sich durch einen optimalen Zugriff auf die Daten die Performance verbessern. Dies ist dann der Fall, wenn möglichst gar kein physikalisches Lesen notwendig ist, sondern sich die benötigten Daten bereits im Cache befinden.

Performanceoptimierung bedeutet also, ähnlich wie bei der Defragmentierung unter Windows, dass Daten zusammengeschoben werden. Allerdings ist eine Oracle-Datenbank doch wesentlich komplexer als die Datenspeicherung auf einem PC, wodurch sich eine andere Vorgehensweise bei der Reorganisation ergibt.

Gründe für eine Reorganisation
Tabellen-Reorganisation
Tabellen sollten dann reorganisiert werden, wenn es Row Chaining in Form von Migrated Rows gibt oder wenn durch das Löschen einer Menge von Sätzen die Blöcke nur noch partiell gefüllt sind. Von Migrated Rows spricht man, wenn ein Datensatz in einem Oracle-Block vergrößert werden soll, weil beispielsweise ein ursprünglich leeres Feld durch ein Update mit einem Wert gefüllt wird, in dem Block aber kein freier Platz mehr zur Verfügung steht. Standardmäßig werden zwar in jedem Block zehn Prozent (PCTFREE) Platz für Erweiterungen durch Updates frei gelassen, speziell bei Massenupdates reicht dieser Platz aber nicht aus. Der zu vergrößernde Satz wird in einen anderen Block verschoben, die zugehörigen Indexeinträge verweisen aber weiterhin auf den alten Block (siehe Bild 1). Da die Datenbank bei jedem Zugriff über den Index zunächst den "falschen" Block lesen muss, verschlechtert sich die Performance beim Zugriff auf diese Sätze.

 
Bild 1: "Migrated Rows" – die Auslagerung von Werten in einen separaten Block – verschlechtern die Zugriffszeiten

Wenn Sie bei einer Anwendung damit rechnen müssen, dass die Länge der Datensätze sich im Laufe der Zeit vergrößert, sollten Sie den Parameter PCTFREE entsprechend anpassen. Dies ist beispielsweise typisch für Workflow-Systeme, bei denen zunächst wenige Informationen in der Tabelle gespeichert, im Anschluss aber immer mehr Daten hinzugefügt werden. Die Parameter-Anpassung lässt sich auch vornehmen, wenn die Tabelle bereits existiert, betrifft dann jedoch nur neue Blöcke.

Wichtig ist es, die Migrated Rows nicht mit dem eigentlichen Row Chaining zu verwechseln, das dann auftritt, wenn sich ein Datensatz über mehrere Oracle-Blöcke erstreckt (also mehrere Blöcke verkettet sind). Dies ist vor allem dann der Fall, wenn Sie den Datentyp LONG beziehungsweise LONG RAW verwenden, da hier die Feldgröße bis zu 2 GByte betragen kann – logisch, dass dies nicht in einen Oracle-Block von 8 KByte passt. Auch wenn Sie die Tabelle mit mehr als 255 Spalten definiert haben, findet eine Verteilung der Sätze über mehrere Blöcke statt, unabhängig davon, wie groß die einzelnen Spalten sind. Eine derartige Tabelle zu reorganisieren wäre nutzlos, da die Struktur nicht geändert wird.

Wenn große Mengen an Daten archiviert und anschließend in der Tabelle gelöscht werden, entstehen Lücken beziehungsweise der Füllgrad der einzelnen Oracle-Blöcke kann stark variieren. Auch wenn Oracle seit der Version 10 das so genannte Automatic Segment Space Management (ASSM) anbietet, das dafür sorgt, dass die einzelnen Blöcke immer möglichst optimal gefüllt werden, kann dies zu einem Problem werden.




                                                Seite 1 von 2                     Nächste Seite>>






ln/Johannes Ahrends, Technical Director Application und Database Management, Quest Software GmbH

Ähnliche Beiträge

Im Test: Heimdal Patch & Asset Management

Ein zeitgemäßes Patchmanagement darf sich angesichts der vielfältigen Bedrohungen nicht allein auf die Microsoft-Produkte konzentrieren, sondern muss sich auch verbreiteten Drittanbieteranwendungen widmen. Der dänische Anbieter Heimdal Security geht noch einen Schritt weiter und hat eine ganze Suite zum Schutz vor Cyberbedrohungen im Programm. Mit dem Fokus auf das Patchen haben wir uns das cloudbasierte Angebot genauer angesehen.

Device-Management mit Microsoft Intune und Office 365 - Zwei Wege, ein Ziel

Um Geräte im Netzwerk oder mobile Geräte, die auf das Netzwerk zugreifen, zu verwalten, bietet sich für Unternehmen entweder Office 365 Mobile Device Management oder Microsoft Intune an. Ein Unterschied zwischen den beiden Lösungen besteht vor allem im Preis. Während das Device-Management zu vielen Abonnements in Office 365 gehört, muss Microsoft Intune gesondert abonniert werden. In diesem Beitrag stellen wir beide Ansätze vor.