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

C# Discussion :

pb pour l'auto-incrémentation


Sujet :

C#

  1. #21
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Mais ne risques que ton pas d'augmenter le temps d'accés à la base de données ?
    Ne serait ce pas mieux alors de passer par une procédure stockée ?

  2. #22
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 602
    Par défaut
    La vraie question, encore une fois, est de savoir si il y a un besoin fonctionnel à procéder de la sorte. Je n'en suis absolument pas convaincu. (et apparement si j'en juge par le poste supra, je ne suis pas le seul).

  3. #23
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 68
    Par défaut A propos de la requête de SaumonAgile
    SaumonAgile, j'ai réussi à faire fonctionner ta requête. C'est mon copier / coller qui n'était pas bon, je ne l'avais pas bien récupérée.

    J'ai fait des tests sur 100 000 enregistrements. Les performances sont au rendez-vous, même avec des trous en fin de table ou disséminés un peu partout.

    Je sens que je vais étudier la question plus en profondeur, je n'y avais jamais pensé car je n'ai jamais été confronté à ce besoin. C'est vraiment une requête intéressante à se mettre de coté pour le cas ou.

    Merci encore.

  4. #24
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    La vraie question, encore une fois, est de savoir si il y a un besoin fonctionnel à procéder de la sorte. Je n'en suis absolument pas convaincu. (et apparement si j'en juge par le poste supra, je ne suis pas le seul).
    Idem. L'intérêt quand on a un compteur, c'est quand même d'avoir automatiquement des valeurs uniques dont on se fiche royalement du sens (des bonnes clefs primaires quoi). Qu'il y ait des trous, on s'en fout.
    S'il ne doit pas y en avoir, il faudrait voir l'intérêt d'avoir ça en clef primaire.

    D'autant que si on se met à insérer des valeurs en bouchant les trous, on insère des valeurs un peu n'importe où dans l'index, d'où potentiel de page splits en cascade bien plus grand.

    Et si on passe par des requêtes 'exotiques' pour boucher les trous, en plus de ralentir les performances, il faut tenir compte des accès concurrents (que la transaction soit bien isolée pour que 2 personnes ne puissent pas boucher le même trou, ce serait ballot)


    De manière générale, en tout cas côté SQLServer, si on a un champ IDENTITY sur une table avec *beaucoup* d'activité, on planifie un job de maintenance de temps en temps pour resserrer les numéros, en se reposant sur les contraintes d'intégrité pour faire les mises à jour en cascade. Cela dit, le 'de temps en temps' est très large.

    En ce moment j'ai une table qui se prend grosso modo 2 millions de suppressions et 2 millions d'insertions tous les jours, les ids commencent à 1, ça fait pas loin de 3 ans avant d'être à court d'id. Donc un petit job qui tourne une fois par an, genre quelque part entre noël et le jour de l'an, c'est réglé.

    Et si cette histoire de bouchage de trou est purement esthétique, alors on oublie. C'est fait pour être pratique, simple, fiable et séquentiel. Pas pour être esthétique.

Discussions similaires

  1. Valeur explicite pour colonne auto-incrémentée
    Par Pongten dans le forum Entity Framework
    Réponses: 7
    Dernier message: 16/01/2012, 15h38
  2. Réponses: 11
    Dernier message: 19/07/2010, 23h48
  3. Erreur 1060 régulière pour un auto-incrément dévalué
    Par sergeh dans le forum Administration
    Réponses: 0
    Dernier message: 06/07/2009, 16h13
  4. Condition pour l'auto incrémentation
    Par Strange-Days dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2008, 21h03
  5. Séquences pour auto incrémentation?
    Par Yassine2006 dans le forum Oracle
    Réponses: 3
    Dernier message: 15/03/2007, 07h58

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