Databases Reference
In-Depth Information
Zustand. Der Neustart mag lange dauern, ist aber sicher schneller als das Einspie-
len einer Sicherung mit anschließendem Nachziehen aller Transaktionsprotokolle.
Das zugehörige Verfahren heißt „Algorithms for Recovery and Isolation Exploi-
ting Semantics“ (ARIES) und funktioniert wie folgt:
Das RDBMS vermerkt den Zeitpunkt jedes Checkpoints im Transaktionspro-
tokoll.
Wenn das RDBMS nach einer Störung neu startet, wird der Zeitpunkt des letz-
ten Checkpoints anhand des Protokolls ermittelt.
Wie in Abschnitt 20.4 beschrieben, wird anhand der Protokolldaten ein physi-
kalisch konsistenter Zustand hergestellt. Das RDBMS hat jetzt den gleichen Zu-
stand wie zum Zeitpunkt des letzten Checkpoints.
Alle offenen Transaktionen werden aus dem Transaktionsprotokoll nachgezo-
gen.
Wenn der letzte Eintrag aus dem Protokoll abgearbeitet ist, können offene
Transaktionen nicht mehr abgeschlossen werden.
Das RDBMS rollt alle offenen Transaktionen zurück und bringt den Datenbe-
stand so in einen logisch konsistenten Zustand.
20.6
Der Optimierer
In der Regel gibt es mehrere Möglichkeiten, eine SQL-Anweisung auszuführen.
Bei einem Join 2
wie
select r.name, a.titel
from reihen r, alben a
where r.id=a.reihe and r.name='Asterix'
fallen uns gleich zwei Möglichkeiten für die Abarbeitung auf:
1.
Wir können zunächst den natürlichen Join über reihen und alben bil-
den und anschließend daraus die Datensätze auswählen, die dem Prädikat
r.name='Asterix' genügen.
2.
Wir können erst die Datensätze aus reihe ermitteln, die dem Prädikat
r.name='Asterix' genügen, und dann nur diese Datensätze mit der Tabelle
alben verbinden.
In unserem Fall ist die zweite Variante die bessere, da die Spalte r.name als
unique definiert ist und es somit maximal nur einen Datensatz in der Tabelle
reihen gibt, der dem Prädikat genügt. Der Join muss viel weniger Datensätze
verarbeiten als bei der ersten Variante.
2
Die Tabellendefinitionen finden sich gleich am Anfang von Kapitel 13.
 
Search WWH ::




Custom Search