Oracle Datenbank-Tuning

Segmente

Beim Erstellen einer Tabelle reserviert Oracle Speicherplatz in Form eines Extents. Wächst die Tabelle durch Einfügen von Daten, werden weitere Extents hinzugenommen.

Besteht ein Segment aus vielen kleinen Extents, die unter Umständen noch wahllos über die Festplatte verteilt sind, dann nennt man diese Situation Fragmentierung. Ein stark fragmentiertes Segment führt zu einer signifikanten Verschlechterung der Performance. Handelt es sich dabei um eine häufig frequentierte Tabelle, kann es zu Wartezeiten von mehreren Minuten kommen.

Tablespaces, in denen der Administrator die Verwaltung der Segmente bestimmt, werden »Vom Datenbankkatalog verwaltete Tablespaces« genannt, da die Informationen über Größe und Anzahl von Extents im Datenbankkatalog hinterlegt werden.

Lokal verwaltete Tablespaces gibt es seit Oracle8i. Dabei übernimmt Oracle die Verwaltung der Extents in Form von Bitmaps und Sie haben nur wenig Einflussnahme.

Verwenden Sie in Oracle 10g für kleine bis große Segmente lokal verwaltete Tablespaces. Das vermindert den Verwaltungsaufwand und bringt keine Nachteile für die Performance mit sich. Für sehr große Segmente kann es Sinn machen, vom Datenbankkatalog verwaltete Tablespaces zu verwenden. Wenn Sie große lokal verwaltete Tablespaces erstellen, dann sollten Sie eine gleichförmige Extent-Zuweisung verwenden.

Der effizienteste Weg, Indexe zu erstellen, ist, zuerst die Daten in die Tabelle zu laden, ohne dass ein Index angelegt ist, und hinterher die Indexe zu erstellen.

Auch beim Erstellen der Indexe lässt sich viel Zeit sparen. Entscheidend für die Geschwindigkeit beim Indexaufbau ist die Sort Area. Eine Erhöhung des Parameters SORT_AREA_SIZE vergrößert die Sort Area und Oracle führt bei der Erstellung des Index weniger Zugriffe auf die Festplatte durch.

Ein Index kann mit der Option UNRECOVERABLE erstellt werden. In diesem Fall werden wesentlich weniger Redo-Informationen erzeugt.