Oracle Datenbank: Redo-Log-Dateien und Indizes optimieren

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 3,5 KB

Redo-Log-Dateien in Oracle-Datenbanken

In der Datei befindet sich eine Warnung, die bei Bedarf mehr Redo-Log-Gruppen anzeigt. Beim Füllen einer Gruppe tritt ein Ereignis ein, der sogenannte Log File Switch oder Redo Log File Switch. Dabei erfolgt die Übergabe an die nächste Gruppe bis zum Ende der Kette. Wenn die erste Gruppe wieder erreicht wird, werden die Daten im Sinne eines Ringpuffers überschrieben, wodurch die Historie der Transaktionen verloren gehen kann.

Funktion und Struktur der Redo-Logs

Die Gesamtheit der Redo-Log-Dateien wird als das Redo-Log der Datenbank bezeichnet. Die wichtigste Funktion des Redo-Logs besteht darin, alle Änderungen an den Daten zu speichern. Sie sind für den Schutz der Datenbank gegen kritische Ausfälle essenziell und werden im Falle eines Systemfehlers zur Wiederherstellung der Datenbank verwendet.

  • Gruppen: Redo-Log-Dateien arbeiten zyklisch; eine Gruppe ist aktiv, während der Rest auf seinen Einsatz wartet. Jede Gruppe besitzt eine Sequenznummer und enthält identische Mitglieder.
  • Mitglieder: Jeder geschriebene Redo-Log-Eintrag wird gleichzeitig in allen Mitgliedern der aktuell aktiven Gruppe gespeichert.
  • Eigenschaften der Mitglieder: Sie haben die gleiche Größe sowie die gleiche Sequenznummer. Sie sollten ähnliche Namen besitzen und auf unterschiedlichen Festplatten gespeichert werden, um effektiv gegen Ausfälle zu schützen.

Indizes zur Beschleunigung des Datenzugriffs

Indizes sind Objekte, die einen schnelleren Zugriff auf Informationen ermöglichen. Sie können auf einem oder mehreren Feldern erstellt werden. Indizes beschleunigen die Suche in den Feldern, die in Abfragen und in der WHERE-Klausel angegeben werden.

Ohne Indizes muss das DBMS die gesamte Tabelle durchsuchen, um die gewünschten Informationen abzurufen. Dabei werden alle Informationen aus den DBF-Dateien gelesen, was den Puffer-Cache füllt. Dies wird als Full Table Scan (FTS) bezeichnet. Um einen FTS zu vermeiden, müssen Indizes erstellt werden.

Struktur und Funktionsweise von Indizes

Die Indizes werden in einer Baumstruktur abgelegt. Oracle verwendet B-Bäume (Binary Trees), bei denen alle untergeordneten Knoten durch eine doppelt verkettete Liste verbunden sind, um Bereichssuchen zu erleichtern. Für alle Knoten im Baum gilt: Knoten auf der linken Seite sind kleiner als der Vaterknoten, Knoten auf der rechten Seite sind größer.

Bei kleinen Tabellen sind Indizes oft nicht notwendig, da der Aufwand für den Index-Zugriff und den anschließenden Tabellenzugriff höher sein kann als ein direkter Scan. Wenn die Anzahl der Datensätze in einer Tabelle jedoch steigt, bietet der Zugriff über einen Index deutliche Vorteile gegenüber dem FTS. Ein Index umfasst zwei Bereiche:

  1. Der gesuchte Wert.
  2. Die ROWID: Dies ist der Bezeichner der Zeile und fungiert als Zeiger auf die exakte Position der Daten in der Tabelle.

Wie erwähnt, ist bei kleinen Tabellen der Index-Zugriff oft langsamer als ein FTS. Mit zunehmender Datensatzanzahl gewinnt der Index-Zugriff jedoch an Effizienz. Wenn Indizes nicht regelmäßig gewartet werden, können die Bäume und verketteten Listen fragmentieren, sodass der Zugriff so langsam wie ein FTS wird. In diesem Fall müssen die Indizes neu erstellt werden.

Verwandte Einträge: