Ich habe mich gefragt, ob jemand mein Verständnis hinsichtlich der Unterschiede zwischen diesen drei Begriffen in Bezug auf Oracle-Datenbanken überprüfen kann.
Viele Quellen verwechseln diese Begriffe und erklären sie nicht im Detail, so dass es eine Herausforderung war, Informationen zu finden.
Soweit ich weiß:
- Commit und Fast Commit sind genau dasselbe, alle Commits sind Fast Commits.
- Ein schnelles Festschreiben aktualisiert im Wesentlichen nur das Flag in der Transaktionstabelle des Undo / Rollback-Segment-Headers, um anzuzeigen, dass die Transaktion festgeschrieben wurde. Der aktuelle Block wird jedoch nicht erneut aufgerufen, was bedeutet, dass die Undo-Byte-Adresse (UBA) in der interessierten Transaktionsliste (ITL), die sich im Header des Datenblocks befindet, weiterhin auf die Transaktionstabelle des entsprechenden Undo-Segments verweist. Darüber hinaus werden die Sperrbytes der entsprechenden Zeilen nicht freigegeben und die Sperranzahl in der ITL bleibt unverändert (Zeilen sind noch gesperrt).
- In einem Räumungs begehen, der Block wird überarbeitet und die ITL mit dem commit SCN aktualisiert. Die Anzahl der Sperren in der ITL und das mit jeder Zeile gespeicherte Sperrbyte werden jedoch immer noch nicht aktualisiert (die Zeile bleibt wie beim schnellen Festschreiben gesperrt). Dies führt nicht zum Wiederherstellen, obwohl der Block geändert wird.
- Blöcke, die normal festgeschrieben wurden (== schnell festgeschrieben), werden beim nächsten Berühren einer verzögerten Blockbereinigung unterzogen (und erneut erstellt).
- Blöcke, für die eine Commit-Bereinigung durchgeführt wurde, werden bei der nächsten Berührung einer Block-Bereinigung mit verzögerter Protokollierung unterzogen (und erneut erstellt).
Hoffentlich kann jemand diese Punkte überprüfen! Vielen Dank!