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 :

Choix d'un type de données pour une clef


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut Choix d'un type de données pour une clef
    Bonjour

    Je cherche à déterminer quelle type de données utiliser pour définir une PK d'une table.
    Cette table fera ~2700 lignes.
    La clef est une chaine de caracteres, de longueur variable entre 3 et 45 caractères, 2100 font 4 caractères, > 500 font entre 5 et 10 caractères, qq dizaines sont plus longues et ne seront probablement pas utilisées. Elles seront toutefois présentes car chargées automatiquement par un fichier.

    Les tables jointes à cette table ne dépasseront pas les 10000 lignes, et seront elle même alimentées par des fichiers, seront expurgées des clefs longues (max 21 car.)

    Il y aura au mieux 1 chargement par jour, jamais d'écriture hormis les corrections.

    Quel compromis prendre entre
    char(45), varchar() et un entier, certe performant, mais qui implique de rendre la mécanique un peu plus complexe ?

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Manager BI/Consultant sénior SAP BI - MS BI
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Manager BI/Consultant sénior SAP BI - MS BI
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    A mon avis, un entier est préférable.
    Plus petit, plus simple et natif et bon pour les performances.
    Jacky BARBIER
    Consultant BI chez VISEO

    * MCITP, MCTS Business Intelligence SQL Server 2008

    Viadeo | LinkedIn | Google+

  3. #3
    Membre expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 612
    Points : 3 066
    Points
    3 066
    Par défaut
    Bonjour,

    Avec ces volumétries je pense qu'il n'y aura aucune différence de performance

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    que représente cette chaine de caractere destiné a etre une pk ?

  5. #5
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    Bonjour
    Citation Envoyé par punkoff Voir le message
    que représente cette chaine de caractere destiné a etre une pk ?
    Les noms des tables des bases de données, afin d'en faire un référencement / une cross-ref.

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Citation Envoyé par bmayer Voir le message
    Bonjour

    Les noms des tables des bases de données, afin d'en faire un référencement / une cross-ref.
    A lie : http://sqlpro.developpez.com/cours/clefs/#L1

  7. #7
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut Merci à tous
    Merci à tous

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par FSiebert Voir le message
    Bonjour,

    Avec ces volumétries je pense qu'il n'y aura aucune différence de performance
    Stupide...

    Imaginez que cette table soit jointe à une table comprenant 1 million de lignes et vous comprendrez alors la différence !!!

    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/ * * * * *

  9. #9
    Membre expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 612
    Points : 3 066
    Points
    3 066
    Par défaut
    Bonjour SQLpro,

    Tout à fait d'accord avec votre remarque

    Cependant l'auteur qui pose une question dans un cadre précis a précisé "Les tables jointes à cette table ne dépasseront pas les 10000 lignes".

    Et dans le cadre de son utilisation de chargement de fichiers, ajouter une couche pour utiliser une clé numérique, compte tenu des volumétries en jeu, n'est je pense pas forcément intéressant.

  10. #10
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Vous avez tous juste mais je tape un +1 à SQLpro, désolé !

    Avez vous imaginé une montée en charge ou autre ?

    Toujours prévoir que valoir !

    On voit tellement de soucis aujourd'hui...;

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  11. #11
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Avez vous imaginé une montée en charge ou autre ?
    C'est deja au max, ce n'est pas perenne

  12. #12
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Citation Envoyé par bmayer Voir le message
    C'est deja au max, ce n'est pas perenne

    Bonsoir,

    Vous êtes sûr de cela ?

    C'est ce que l'on m'a dit il y a 2 ans et maintenant les volumes de certaines de nos tables ont doublés voir triplés.....

    Passer 11H au taf pour reprendre le code C# ou la modélisation de la Base je vous promets que cela n'est pas dans mes habitudes

    Si vous êtes certains, pas de soucis
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  13. #13
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    Les bases ont 10/15 ans, n'ont guère bougé. Un projet est en cours pour une migration sur completement autre chose. D'ici là, j'aimerai bien combler le manque de doc, en inventoriant les tables, leurs jobs de chargement et les rapprocher. Point barre.
    Si cela devait déboucher sur qq chose d'utile, cela sera reconsidéré, des moyens seront mis en face, et sera refait, mieux.

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

Discussions similaires

  1. type de données pour une liste
    Par sihamnet dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 29/07/2012, 14h46
  2. Réponses: 2
    Dernier message: 03/05/2011, 10h20
  3. Réponses: 5
    Dernier message: 09/02/2007, 09h09
  4. Type de données pour effectuer une différence en vba
    Par snoopy69 dans le forum Access
    Réponses: 4
    Dernier message: 03/03/2006, 07h49
  5. Réponses: 3
    Dernier message: 07/02/2006, 13h26

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