Oracle: Comment les séquences mises en œuvre?
-
16-09-2019 - |
Question
Pour répondre à certaines exigences d'affaires bizarres, je vais devoir mettre en œuvre mes propres compteurs de séquence semblable. Je vais faire une première coupe de cette manière évidente, mais je voudrais comprendre un peu plus sur la façon dont Oracle met en œuvre des séquences. Par exemple, ils peuvent utiliser des verrous à la place des serrures?
Je suis incapable de trouver beaucoup à ce sujet sur le web, donc des pointeurs DOCS ainsi qu'un aperçu de votre accueil expérience personnelle!
(RAC 10g, si elle importe)
La solution
Je ne pense pas que Oracle a publié le fonctionnement interne des séquences, mais Jonathan Lewis a écrit une analyse détaillée de la façon dont ils fonctionnent ici . A partir de ce document:
Parce que le mécanisme est interne Oracle, il est très efficace et contourne la contention de verrouillage normale qui apparaît avec le traditionnel L'utilisateur final tables codé » de la séquence A objet séquence: « donnez-moi la prochaine numéro disponible » et « me rappeler ce que qui était à nouveau; Voici les nextval et CURRVAL Appels respectivement.
La demande nextval va dans le cache global pour obtenir la prochaine valeur de la séquence disponible et recopié à la session de locaux mémoire.
Autres conseils
Voici une bonne série de questions a répondu: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6575961912937
Voulez-vous / ont besoin d'une séquence gapless des chiffres? Lisez ceci: http: // asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:4343369880986
Je pense que vous devez expliquer pourquoi vous auriez besoin d'implémenter votre propre séquence. Si nous connaissons le problème que vous essayez de résoudre, nous pouvons être en mesure de vous donner une réponse afin que vous n'auriez pas à faire votre propre séquence personnalisée.