IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sybase Discussion :

[ASE]AUTO-INCREMENT- où est le compteur?


Sujet :

Sybase

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [ASE]AUTO-INCREMENT- où est le compteur?
    Bonjour,

    Suite à une panne de courant, le compteur d'incrément auto d'une colonne d'une table de notre base de donnée c'est embrouillé (il a rajouté +500000)...apparement, c'est normal, c'est pour eviter d'éventuel probleme...

    2 petites questions (ambigues ) :

    ###la prochaine valeur d'un enregistrement n'est pas le resulttat de la fonction MAX()+1 ni de COUNT()+1 (bien entendu)...le serveur de base de donnée doit donc sauvegarder cette valeur dans une variable à lui...laquelle???

    ### Comment est il possible de changer le pas (actuellement de +500000) en quelque chose de bien plus petit ?


    Merci d'avance pour vos réponses

    Guillaume

  2. #2
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    dejas une réponse :

    Pour configurer le pas, il faut faire :
    je cite :

    * How do I Configure the burn factor?: The number of identity values that
    gets "burned" upon a crash or a shutdown can by found by logging into the
    server and typing:
    1> sp_configure "identity burning set factor"
    2> go

    the Default value set upon install is 5000. The number "5000" in this case
    is read as ".05% of all the potential identity values you can have in this
    particular case will be burned upon an unexpected shutdown." The actual
    number depends on the size of the identity field as you specified it when
    you created your table.

    To set the burn factor, type:

    1> sp_configure "identity burning set factor", [new value]
    2> go

    This is a static change; the server must be rebooted before it takes
    effect.



    Ma premiere Question tiens toujours

    merci

    Guillaume

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    L'information est stockées dans une des pages de "garde" de la table (je ne me rappelle plus exactement où - mais je pense que le site de Rob Vershoor doit avoir la réponse - www.sypron.nl/idgaps.html).

    Pour gérer le pas, on peut aussi (en 12.0 et plus) utiliser l'attribut "identity_gap" qui est positionable pour chaque table qui a une colonne de type IDENTITY.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    MAGNIFIQUE

    probleme réglé grace à mpeppler

    Merci

    Guillaume

  5. #5
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    C'est dans la page OAM (Object Allocation Map), sauf erreur.

    Et le saut vient bien effectivement de ce facteur : le serveur attribue des plages de données pour des raisons de performances. Lors d'un crash, il saute à la plage suivante pour s'éviter un rique de doublon.

    En terme de norme, l'identity est garant de l'unicité et non de la séquence.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Auto-increment est il sur
    Par jeff_! dans le forum Outils
    Réponses: 4
    Dernier message: 30/08/2006, 11h26
  2. [MYSQL] valeur auto-increment
    Par alex1er dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/07/2003, 12h26
  3. Auto Increment
    Par Guizz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/06/2003, 18h36
  4. Nom du champs auto-incrementé
    Par norroy dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 18h30
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo