|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Inscription : septembre 2002 Messages : 253 ![]() |
Bonjour,
Il se passe un truc que je ne m'explique pas. Quand je fais: Code :
Par contre quand je fais: Code :
Bizarre , non ? Merci d'avance pour votre aide. A+ |
||||
|
|
00
|
|
|
#2 | ||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 453 ![]() |
Quel est le cache size ?
Code :
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||||
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 453 ![]() |
En fait ta demande est trop incomplète pour qu'on sache si ça vient de là.
Quel est le trigger qui met à jour le champ ID. Qui d'autre utilise la séquence 'SQ_TEST' ?
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#4 | |
|
Membre habitué
![]() Inscription : septembre 2002 Messages : 253 ![]() |
Citation:
Encore merci. A+ |
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 453 ![]() |
Ben oui, mais 246 + 20 c'est toujours inférieur à 361
Ou alors c'est pas 361 mais 261
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#6 | |
|
Membre habitué
![]() Inscription : septembre 2002 Messages : 253 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : juin 2005 Messages : 260 ![]() |
Bonjour,
Je me permets de remonter le sujet car je pense avoir un problème assez similaire à celui ci. En fait, j'ai aussi une séquence ou le cachesize est à 20 (j'ai récupérer des scripts de création que j'ai modifié et j'ai laissé cette valeur en faite...) Seulement, quand j'utilise une application qui se connecte à cette base, si j'utilise plusieurs fois la séquence, elle s'incrémente d'1 à chaque fois, mais parfois (je ne sais pas quand) il semblerait que la valeur "saute" et que la valeur selectionnée est la valeur + le cachesize (donc x1 ou x est un nombre quelconque). Je voudrais savoir pourquoi j'obtiens cela ? Et est-ce que ca peut poser des soucis ? Merci pour vos éclaircissements. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 453 ![]() |
Les séquences sous Oracle certifient l'unicité et non la suite logique sans trou.
Le cache : La suite des chiffres de la séquence est montée dans la mémoire, la séquence basée est modifiée avec valeur + cache_size Un flush du cache (volontaire ou pas) effacera les valeurs de la mémoire, Au prochain appel, Oracle refais une demande de cache_size chiffres (La valeur basée réaugmente de cache_size). Donc si tu fais appel à la séquence 1 fois, puis que la base travaille jusqu'à ce que l'espace dédié à la séquence soit requis, tu "sautes" des chiffres.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : juin 2005 Messages : 260 ![]() |
Voilà qui est plus clair, merci.
Donc plus on met un cache_size faible, moins on saute de valeur mais je suppose que lorsqu'Oracle refait une demande de mise en cache, l'opération est plus longue c'est ca ? C'est pas dramatique si on a des valeurs qui sautent de toute façon ? Tant qu'elles sont bien uniques c'est l'essentiel ? |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 453 ![]() |
C'est exactement ça : Le "plus" couteux c'est de monter dans le cache les requetes.
Ensuite ça dépend combien de fois la séquence est utilisée.. c'est pas la mort non plus si tu as un cache_size de faible. PS : par flush du cache volontaire j'entendais :
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() Inscription : juin 2005 Messages : 260 ![]() |
OK, j'ai saisi
Merci beaucoup. |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
C'est un simple problème de logique, oracle ne peut pas garantir une suite logique, car il fourni un numéro différent à chaque transactions, avant que celles ci soient commitées. Personne ne force apres l'utilisateur à valider la transaction, et en cas de rollback, tant pis ce numéro est "perdu". Il fourni aussi un numéro unique à chacun meme en cas d'accès multiple de plusieurs transactions à une même séquence.
En imaginant qu'on exige d'oracle qu'il fournisse une suite propre, alors en retour il ne pourrait donner accès à la séquence qu'a une seule transaction à la fois. Une transaction longue lockerait alors la séquence pour tous les autres utilisateurs... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com