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

Développement SQL Server Discussion :

Problemes avec des tables de liens - Cles secondaires


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 156
    Points : 110
    Points
    110
    Par défaut Problemes avec des tables de liens - Cles secondaires
    Bonjour à tous et joyeux noël,

    j'ai créé une base de données relativement complexe où les tables sont interconnectés avec des tables de liens.
    ça marche bien, sauf que c'est parfois lent.
    Il paraît qu'utiliser des clés secondaires pourrait accélérer le process. Comment s'en servir? Dois-je définir les deux colonnes des tables de liens comme secondaire?
    Pour info, j'appelle table de liens les tables telles que:
    Table de lien "Employé_Entreprise"
    ID Employe_ID Entreprise_ID
    1 1 2
    2 2 3

    Table "Employé"
    ID Nom etc.
    1 Martin
    2 Dupuis

    Table "Entreprise"
    ID Nom Adresse
    1 IBM
    2 Oracle
    3 CSC

    Left joint etc... pour avoir la liste des employés dans chaque entreprise.

    Merci d'avance,

    Nicolas

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Vous n'avez pas dit si vous aviez des index sur les tables concernees ?

    Table "Employé" --> indexs ?
    Table "Entreprise" --> indexs ?
    Table de lien "Employé_Entreprise" --> indexs ?

    ++

  3. #3
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 156
    Points : 110
    Points
    110
    Par défaut
    j'ai pas d index...
    les IDs sont des clés primaires.

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Il faut donc commencer par en mettre sur les cles etranges de votre table d'association (table de lien)

    Table de lien "Employé_Entreprise" --> index sur Employe_Id et index sur Entreprise_ID

    Lorsque vous ferez vos jointures vous aurez deja plus de performances.

    ++

  5. #5
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 156
    Points : 110
    Points
    110
    Par défaut
    merci beaucoup pour votre aide .
    Dernière question pour comprendre tout ça: il vaut mieux faire un index par référence dans la table de liens ou faire un seul index pour les deux références?
    Je cherche à avoir des queries les plus rapides possible

  6. #6
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par Nico820 Voir le message
    merci beaucoup pour votre aide .
    Dernière question pour comprendre tout ça: il vaut mieux faire un index par référence dans la table de liens ou faire un seul index pour les deux références?
    Je cherche à avoir des queries les plus rapides possible
    Fais le test dans ton environnement avec les 2 cas que tu évoques et tu pourras déduire toi-même ce qui est mieux dans ton cas

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    a première vue, je dirai :

    un index (Employe_ID, Entreprise_ID)
    et
    un index (Entreprise_ID, Employe_ID)

    mais tout dépend de tes requêtes.

  8. #8
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    un index (Employe_ID, Entreprise_ID)
    et
    un index (Entreprise_ID, Employe_ID)
    En plus des indexes sur les clés étrangères ?

    ++

  9. #9
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Table de lien "Employé_Entreprise" --> index sur Employe_Id et index sur Entreprise_ID
    ...
    Citation Envoyé par Nico820 Voir le message
    Dernière question pour comprendre tout ça: il vaut mieux faire un index par référence dans la table de liens ou faire un seul index pour les deux références?
    Je cherche à avoir des queries les plus rapides possible
    Citation Envoyé par mikedavem Voir le message
    En plus des indexes sur les clés étrangères ?
    Non, je me suis mal exprimé. En fait pour mieux répondre a sa question, s'il veut inclure les deux colonnes dans son index, il devra créer deux index quand même et non pas un seul comme il l'évoque. (oui je sais ca ne répond pas a la question mais j'approuve le :
    Citation Envoyé par zinzineti
    Fais le test dans ton environnement avec les 2 cas que tu évoques et tu pourras déduire toi-même ce qui est mieux dans ton cas
    )

    car sa dépend de la fréquence des insertions, du type des requêtes de sélection,... bref de ses besoins

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

Discussions similaires

  1. [WD-2010] Probleme avec la table des figures
    Par Flow_75 dans le forum Word
    Réponses: 1
    Dernier message: 24/01/2014, 23h01
  2. Problemes avec des tables
    Par oyarson dans le forum HyperFileSQL
    Réponses: 5
    Dernier message: 14/06/2012, 15h10
  3. probleme avec des border de table
    Par Joe Le Mort dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 01/03/2007, 16h21
  4. probleme avec des liens
    Par eon-of-the-scorn dans le forum Langage
    Réponses: 9
    Dernier message: 28/07/2006, 10h32
  5. [FLASH MX] Probleme avec des liens.
    Par maxcmoi dans le forum Flash
    Réponses: 2
    Dernier message: 12/11/2005, 11h11

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