Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SEQUENCE - 'incrémenter de' et 'cache'

Ni. Il n'y a aucune relation entre INCREMENT BY et CACHE.

L'INCREMENT BY contrôle l'aspect monotone de la séquence. Avec INCREMENT BY 50 la série va 1, 51, 101, 151 et ainsi de suite.

Le CACHE contrôle le nombre de numéros de séquence conservés en mémoire pour traiter les requêtes NEXTVAL. Plus le numéro CACHE est petit, plus la base de données doit souvent lire ses tables internes pour saisir la plage d'allocation suivante. Ainsi, dans un système modérément occupé, nous voudrions minimiser le nombre de verrous acquis, nous définissons donc CACHE sur un nombre élevé, disons 1000.

Les gens sont obsédés par la définition de la valeur CACHE, car ils pensent que si elle est trop élevée, ils pourraient "perdre" certaines valeurs et avoir des lacunes dans leur série. Il est extrêmement peu probable que cela se produise, et même si c'est le cas, nous ne devrions pas nous en soucier. Les séquences sont une source de valeurs uniques garanties et n'ont plus de sens.

Cependant, après avoir relu votre question, je ne pense pas que cela aura un impact sur les performances de vos inserts en vrac. Pourquoi avez-vous choisi de vous concentrer sur l'allocation de séquences ? Avez-vous exécuté une trace pour découvrir où se trouve le goulot d'étranglement? Avez-vous parlé à votre DBA ?