|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Ingénieur développement logiciels Inscription : juin 2011 Messages : 26 ![]() |
Bonjour,
j'ai une question pour les "Oracliens". Si on utilise un bloc de code utilisant une transaction, et dans laquelle on fait appel à un SEQ.nextval, est ce que le fait de rollbacker annule également l'incrémentation de la séquence ? Je présume que non parce que cela pourrait vite foutre la merde, mais cela sous entendrait que si on a toute une suite de transaction rollbackée on aura alors de gros "trous" au niveau séquence ? On me dit également que lors de la création d'une séquence on peut paramétrer un "cache" pour anticiper une certaine génération de la séquence et que si on stoppe et redémarre la base on pourrait se retrouver avec des sauts de séquence.... ca parle à qqun ca ? Merci. |
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
En effet, le cache est vidé à l'arrêt de la base donc tous les numéros cachés sont perdus |
|
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Citation:
Oracle dit : La séquence est faite pour un n° unique, en aucun cas pour avoir une suite sans trou.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
|
00
|
|
|
#4 | |
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
Citation:
La perte de valeurs d'une séquence représente généralement une conséquence de la "library cache" qui est sur-utilisée si bien qu'elle doit "flucher" de temps à autres les objects ''cachés'' en utilisant la LRU pour cela. Bien à vous Mohamed Houri |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Ingénieur développement logiciels Inscription : juin 2011 Messages : 26 ![]() |
Oula cela devient trop technique pour moi. Je suis juste en mode user personnellement.
Mais la base de mon client (dont on a hérité) est tellement mal foutue, et des gens soit disant "support" y viennent ajouter des tuples sans même utiliser les séquences. Bref au final, y a une fonction de la mise à jour des séquences faite en java pour déterminer le prochain élément acceptable par la séquence ( )Il est clair qu'une séquence n'est pas là pour éviter d'avoir des trous, mais là l'utilisation semble tellement intensive qu'ils auraient réussi à se retrouver avec des ID négatifs ! ![]() Merci à vous pour vos réponses |
|
|
00
|
|
|
#6 |
![]() Inscription : décembre 2002 Messages : 2 387 ![]() |
Bien vu ! Je viens de le vérifier sur une 10.2, il ne me reste plus qu'à oublier les vieilles vérités que j'avais en tête...
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 15 ![]() |
bonjour, j'ajouterais qu'à la création d'une séquence on précise le nombre de numéro "stocké" en mémoire prévisionnellement, l'option NOCACHE interdit à Oracle de pré-réserver les numéros, cela permet de diminuer le nb de trou en cas de vidage mémoire.
Sinon fonctionnellement pour la gestion de clef sans "trou", j'ai déjà expérimenté la chose en passant par une variable globale de package faisant office de numéro de séquence, pilotée par des fonctions de ce package. salutations. |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Étudiant Inscription : août 2011 Messages : 1 ![]() |
salut les amis, je travaille sur PL/SQL , et ma question est la suivante : existe t-il un package comme (UTL_FILE) qui permet de générer un fichier .txt dans le serveur client et non dans celui d'oracle , merci d'avance
|
|
|
01
|
Copyright © 2000-2012 - www.developpez.com