Oracle-Sequenz-Caching

Ich versuche, eine Sequenz in eine Oracle-Datenbank zu implementieren, um als Ersatzschlüsselersteller für eine Tabelle zu fungieren. Aus Performancegründen möchte ich, dass diese Sequenz zwischengespeichert wird. Ich habe gelesen, dass es bei der Verwendung von zwischengespeicherten Sequenzen potenzielle Fallstricke gibt, da Rollbacks und Instanzfehler zu fehlenden Werten führen.

Das brachte mich zum Nachdenken. Angenommen, ich erstelle eine Sequenz mit einer Cache-Größe von 100. Dann füge ich 50 Datensätze in meine Tabelle ein, wobei der Sequenzwert der primäre Ersatzschlüssel ist. Nach dem Festschreiben wäre der aktuelle Wert der Sequenz noch nicht auf die Festplatte geschrieben worden. Angenommen, ich hätte zu diesem Zeitpunkt einen Instanzfehler. Wenn die Datenbank wiederhergestellt wird, wird der aktuelle Sequenzwert meines Wissens auf den letzten Wert zurückgesetzt, der auf die Festplatte geschrieben wurde.

Wenn ich versuchen würde, weitere 50 Datensätze in meine Tabelle einzufügen, werde ich dann die Primärschlüsselbeschränkung aufheben, da die Sequenz von der Festplatte auf den letzten Status zurückgesetzt wurde und die Primärschlüssel jetzt wiederverwendet werden? Wenn dies der Fall ist, wie würde ich dies verhindern?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage