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 :

INNER JOIN avec ON et plusieurs conditions de jointure


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 201
    Points : 69
    Points
    69
    Par défaut INNER JOIN avec ON et plusieurs conditions de jointure
    Bonjour,

    J'ai actuellement une requète de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select count(*) from fonction(x) as fonc INNER JOIN (gros select avec plusieurs sous select et jointure) as grossetable ON fonc.id=grossetable.id AND fonc.chaine=grossetable.chaine
    Chaque table comprend environ 40 000 lignes

    Cette requète dure trés longtemps (environ 5 minutes)

    Si je concatene la jointure pour avoir une seule condition de jointure de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select count(*) from fonction(x) as fonc INNER JOIN (gros select avec plusieurs sous select et jointure) as grossetable ON ltrim(rtrim(str(fonc.id)+fonc.chaine=ltrim(rtrim(str(grossetable.id)+grossetable.chaine
    LE résultat est immédiat


    Je ne peux pas vous donné les plan de requète car je ne sais pas faire...
    Mais j'aurais voulu juste savoir s'il pourrait y avoir une explication logique et si je dois faire cela sur toute mes doubles jointure pour gagner en performance ?

    Par avance merci pour vos lumière

    Sylo

  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
    Pour nous donner le plan d'exécution:

    Dans SQL Server Management Studio:

    1- tu fais Ctrl+M
    2- Tu exécutes ta requête
    3- Tu récupères le plan d'exécution dans la partie du bas et la section Execution Plan (Clic droit > Save Execution Plan As)

    Donne nous les plans d'exécution dans chaque cas

    ++

Discussions similaires

  1. Inner join avec condition
    Par fguigui dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/04/2012, 20h40
  2. Réponses: 8
    Dernier message: 17/05/2009, 23h30
  3. INNER JOIN avec un LIKE
    Par Spiritueux dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/10/2008, 18h14
  4. Réponses: 7
    Dernier message: 13/12/2007, 14h32
  5. INNER JOIN avec des données de sélection
    Par EK1_ dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/05/2006, 19h40

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