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 :

Lecture et optimisation d'une requête SQL


Sujet :

Langage SQL

  1. #1
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut Lecture et optimisation d'une requête SQL
    Bonjour,

    cette question est une question de base mais j'ai un doute quant à mes souvenirs et j'avoue ne rien avoir trouvé de probant sur le sujet lors de mes recherches de ce début d'après-midi.

    Soit une requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT T1.CHAMP1, T2.CHAMP2
    FROM TABLE T1, TABLE T2
    WHERE T1.ID1=T2.ID1
    AND T1.CHAMP3 = 'tata'
    AND T2.CHAMP4 = 'toto'
    Quelque chose comme cela. Bien sur la requête pourrait être optimiser en utilisant un join entre les 2 tables.

    J'ai un vague souvenir comme quoi l'ordre des tables dans la requête peut être important ainsi que l'ordre des restrictions dans la clause where.
    Cela viendrait de la lecture de la requête par le moteur du SGBD.

    Quelqu'un a-t-il des informations/explications/liens sur le sujet?
    Où est-ce juste un délire de mon époque étudiante?


    Un autre petit point
    Est-il préférable de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select C.IDFACTIVITE,
             C.NUM_CRITEREMA,
             C.LIB_CRITEREMA
    from CRITERE_MA C JOIN RISQUE_CRITERE R ON R.NUM_CRITEREMA = C.NUM_CRITEREMA
    where C.IDFACTIVITE = 1
    and R.IDFACTIVITE = 1
    and R.NUM_RISQUE = 'R01'
    order by C.NUM_CRITEREMA;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select C.IDFACTIVITE,
             C.NUM_CRITEREMA,
             C.LIB_CRITEREMA
    from CRITERE_MA C JOIN RISQUE_CRITERE R ON R.NUM_CRITEREMA = C.NUM_CRITEREMA AND R.IDFACTIVITE=C.IDFACTIVITE
    where R.IDFACTIVITE = 1
    and R.NUM_RISQUE = 'R01'
    order by C.NUM_CRITEREMA;

    Je continue de chercher néanmoins

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 117
    Points : 28 494
    Points
    28 494
    Par défaut
    C'est à l'interpréteur du SGBD de faire sa cuisine interne pour déterminer le meilleur plan d'exécution de la requête.
    Pour cela, il s'appuie sur les statistiques de population des tables et index.
    Si les statistiques ne sont pas à jour, le chemin risque de ne pas être optimal.
    Forcer un "chemin" risque de se révéler contre-performant si les critères qui ont conduit à ce choix changent.

  3. #3
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Donc en gros on s'en fiche? Cela ne joue pas sur les perfs?

    Et pour le deuxième point?

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

Discussions similaires

  1. [MySQL] Optimisation d'une requête SQL
    Par PIEPLU dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 19/03/2011, 16h22
  2. Erreur de lecture de données dans une requête SQL
    Par PtiteDéveloppeuse dans le forum Requêtes
    Réponses: 0
    Dernier message: 10/01/2008, 12h29
  3. Optimisation d'une requête SQL
    Par Michel601 dans le forum Oracle
    Réponses: 3
    Dernier message: 08/03/2007, 16h17
  4. Optimisation d'une requête SQL
    Par gaboo_bl dans le forum Oracle
    Réponses: 18
    Dernier message: 23/10/2006, 16h33
  5. [MySQL] Optimisation d'une requête sql
    Par fabien14 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2006, 12h45

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