2009-08-14 18 views
1

Um einige seltsame Geschäftsanforderungen zu erfüllen, muss ich meine eigenen sequenzähnlichen Zähler implementieren. Ich werde den ersten Schritt auf die naheliegende Art machen, aber ich würde gerne ein bisschen mehr darüber verstehen, wie Oracle Sequenzen implementiert. Können sie zum Beispiel Riegel anstelle von Schlössern verwenden?Oracle: Wie werden Sequenzen implementiert?

Ich konnte nicht viel über das im Web finden, also Hinweise auf Dokumente sowie Einblicke aus Ihrer persönlichen Erfahrung willkommen!

(10g RAC, wenn es darauf ankommt)

+0

Ich würde gerne die ungeraden Geschäftsanforderungen kennen, die bedeuten, dass Sie nicht einfach Sequenzen verwenden können ... –

Antwort

3

Ich glaube nicht, Oracle die internen Abläufe von Sequenzen veröffentlicht hat, aber Jonathan Lewis geschrieben hat einige detaillierte Analyse, wie sie here arbeiten. Von diesem Dokument:

Da der Mechanismus ist intern Oracle ist es sehr effizient und umgeht der normale Schließ Anstoß , die mit dem traditionellen Endbenutzers codiert erscheint ‚Objekttabellen der Sequenz einer Sequenz:‘ gib mir die nächste verfügbare Nummer 'und' erinnere mich daran, was das war wieder '; Dies sind die nextval und currval Anrufe jeweils.

Die nextval Anfrage geht an der globalen Cache den nächsten verfügbaren Sequenzwert zu erhalten und kopiert sie auf die lokalen Speicher Sitzung.

1

Ich denke, Sie müssen erklären, warum Sie Ihre eigene Sequenz implementieren müssten. Wenn wir das Problem kennen, das Sie zu lösen versuchen, können wir Ihnen möglicherweise eine Antwort geben, damit Sie Ihre eigene benutzerdefinierte Sequenz nicht machen müssen.

Verwandte Themen