DML Anweisung bearbeiten (Transaktion)
Schritte bei einer Data Manipulation Language (DML) Anweisung. Transaktion
Parsen, syntaxcheck, symantekcheck, Ausführungsplan
Die DML Anweisung wird entsprechend überprüft, ob alles ok ist.
Lessen und Datansatz Sperre.
Wenn die Daten noch nicht im Buffer Chache vorhanden sind, werden diese von dem Server-Prozess in den Buffer Cache geschrieben. Es wird eine Sperre auf die Zeilen gesetzt, die geändert werden sollen.
Before Image erzeugen
Der Server-Prozess protokolliert die Änderungen an den Datensatz vorgenommen werden sollen .Es wird der Datenwert vor der Änderung im "Log Buffer" geschrieben. Dort wird ein "Before Image" erzeugt, damit eine DML-Anweisung, falls es nötig wäre, zurückgerollt werden kann..
Änderung Datensatzes
Der Datansatzes wird verändert Blöcke des Buffer Cache werden als "dirty" gekennzeichnet. Das bedeudet, die Blöcken im Buffer Cache stimmen nicht den entsprechenden Blöcken auf der Platte überein.
commit
Bei einem "commit" schreibt der Logwriter (lgwr)in das "Befor Image" und das "After Image" in das "Redo Logfile". Oracle führt ein "Checkpoint" aus, wenn ein "Redo Logfile" gefüllt ist. Dann werden die Blöcke aus dem "Redo Logfile" in das Datafile geschrieben. Häufige Checkpoints vermindern die Zeit für ein recovery nach einem Datenbankabsturzes, können aber die allgemeine Performance der Datenbank verschlechtern.
Das UNDO-Segemnt hat die Aufgabe, den alten Zustand (before images) zu speichern, bis ein neuer Zustand in der Datenbank festgeschrieben wurde.
Artikelaktionen