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

Langage SQL Discussion :

[Debutant] Question sur Cours SQL Pro


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut [Debutant] Question sur Cours SQL Pro
    Bonjour,

    je lis le chapitre OPTIMISATION des SGBDR et du SQL du cours SQLPro.
    L'auteur dit
    Évitez les clefs composites. Préférez encore une fois une clef purement informatique !
    Je ne suis pas sûr d'avoir bien compris. Cela signifie qu'il faut éviter d'avoir une clé primaire du type OU989RE43 ? C'est à dire un mélange de chiffre et de lettres par exemple ?

    Merci pour vos réponses.
    ++

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Clé composite veut dire "composée de plusieurs colonnes".
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut
    Ok, j'avais imaginé cette idée aussi.
    Bon et bien merci d'avoir répondu à ma question (con)
    Et donc, utiliser des clés primaires tels que OU989RE43 ne pose pas de problème, à partir du moment où j'utilise un char plutôt qu'un varchar, et si possible un char composé de 4 caractères ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Préférer une bête séquence à une clé composé de plusieurs info, ex : A001 ou F001

    1° lettre -> A ou F pour Avoir ou Facture

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut
    Ok merci

    A+

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Votre clef OU989RE43 est composée de 9 caractères soit 9 octets. Un processeur ne peut traiter que 32 bits en une seule passe. Or votre literal requiert au moins 3 passes pour pouvoir être lu, comparé... De plus les problématiques de jeux de caractères, collations, etc... multiplie par un facteur non négligeable le nombre de passe pour les comparaions et les recherches. Dans votre cas, je dirais que votre littéral nécessitera au moins 6 passes dans le processeur pour chaque lecture. En comparaison un entier de 32 bits n'en mettra qu'une seule.
    Préférez vous être 6 fois moins rapide ?

    De plus vous voulez utiliser le VARCHAR qui possède quelques effets pervers supplémentaires, notamment si la valeur est mise à jour.

    Bref, soit vous voulez une base de données performante => clef de type entier, soit vous voulez vous faire plaisir...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [debutant] Question sur les données.
    Par Norabfr dans le forum Débuter
    Réponses: 4
    Dernier message: 03/01/2006, 13h47
  2. [debutant] question sur JCreator ? (son classpath)
    Par easyman dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 3
    Dernier message: 25/10/2005, 08h56
  3. [Debutant] Question sur la redéfinition de getPreferredSize
    Par etiennegaloup dans le forum Débuter
    Réponses: 1
    Dernier message: 23/09/2005, 20h02
  4. [Debutant] Question sur le system.out.print
    Par thom02 dans le forum Langage
    Réponses: 8
    Dernier message: 19/07/2005, 18h19
  5. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49

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