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 :

Optimisation de requête


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de seb.49
    Profil pro
    ljgdfgdf
    Inscrit en
    Octobre 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : ljgdfgdf

    Informations forums :
    Inscription : Octobre 2002
    Messages : 291
    Par défaut Optimisation de requête
    Bonjour,

    Je travaille sur une base SqlServer 2008 de 2 Go dont la table principale contient 2 millions de ligne.
    Lorsque je fais une requete j'ai des temps exécrable mais en transformant ma requete en sous requete, c'est plutot honorable.
    J'imagine bien que sans la base il va être difficile de m'aider mais je tente quand meme. Donc voici ma requete lente (schématisée bien sur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     SELECT
     DISTINCT 
    TABLE1.15_champs,
    TABLE2.6_champs,
    TABLE3.3_champs
    TABLE4.1_champ
    FROM 
    TABLE1  
     INNER JOIN TABLE_DE_JOINTURE_1
     INNER JOIN TABLE_DE_JOINTURE_2 
     INNER JOIN TABLE_2
     INNER JOIN TABLE_3
    LEFT JOIN TABLE_DE_JOINTURE_3
    LEFT JOIN TABLE_DE_JOINTURE_4
    INNER JOIN TABLE_DE_JOINTURE_5
    INNER JOIN TABLE_4
    ca c'est tres lent mais quand je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     SELECT
     
    TABLE1.15_champs,
    TABLE2.6_champs,
    TABLE3.3_champs
    TABLE4.1_champ
    FROM 
    (select DISTINCT TABLE1.ID FROM 
    TABLE1  
     INNER JOIN TABLE_DE_JOINTURE_1
     INNER JOIN TABLE_DE_JOINTURE_2 
     INNER JOIN TABLE_2
     INNER JOIN TABLE_3
    LEFT JOIN TABLE_DE_JOINTURE_3
    LEFT JOIN TABLE_DE_JOINTURE_4
    INNER JOIN TABLE_DE_JOINTURE_5
    INNER JOIN TABLE_4) AS T1 ON T1.ID = TABLE1.ID
     INNER JOIN TABLE_2
     INNER JOIN TABLE_3
    INNER JOIN TABLE_4
    c'est beaucoup plus rapide. Est ce que quelqu'un peut m'expliquer le pourquoi ?

    Si j'avais de l'argent je me paierais bien un audit de Fred Brouard mais en attendant ce jour je dois bien me débrouiller.

    merci de votre aide

  2. #2
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Simple, dans un cas vous demandez à SQL SERVER de réaliser un DISTINCT sur ID
    Dans l'autres sur toutes les colonnes...

Discussions similaires

  1. [Access] Optimisation performance requête - Index
    Par fdraven dans le forum Access
    Réponses: 11
    Dernier message: 12/08/2005, 14h30
  2. Optimisation de requête avec Tkprof
    Par stingrayjo dans le forum Oracle
    Réponses: 3
    Dernier message: 04/07/2005, 09h50
  3. Optimiser une requête SQL d'un moteur de recherche
    Par kibodio dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/03/2005, 20h55
  4. optimisation des requêtes
    Par yech dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/09/2004, 19h03
  5. Optimisation de requête
    Par olivierN dans le forum SQL
    Réponses: 10
    Dernier message: 16/12/2003, 10h09

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