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

Requêtes MySQL Discussion :

probleme temps execution requete


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut probleme temps execution requete
    Bonjour,

    J'ai une requete mysql qui met un temps fou à s'executer...

    Pourriez vous me dire si la requete est cohérente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select * from notices 
     where notices.ID in (1,2,3,4,5) 
       AND notices.ID IN (SELECT exemplaires.ID_notice 
                                   from exemplaires 
                                 where exemplaires.ID_bib in (22,1,12,11,9,2,7,8,16,15,13,6,14,19,10,21,4,3,5,18,17,20)) 
     ORDER BY notices.auteur
    Là j'ai limité le nombre d'id dans la condition pour que la lecture soit plus facile, mais il peut y avoir beaucoup d'id dans la condition...

    Je ne comprend pas pourquoi cette requête ne marche pas...

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Si tu as un grand nombre de id_notice dans la table exemplaire pour les id_bib demandés et nettement moins dans la table notices, alors utilise plutôt EXISTS à la place de IN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM notices n
     WHERE EXISTS (select 1 from exemplaires e
                   WHERE e.id_notice=n.id
                   and e.ID_bib IN (22,1,12,11,9,2,7,8,16,15,13,6,14,19,10,21,4,3,5,18,17,20))
     ORDER BY n.auteur
    Sinon que donne la requête sans ORDER BY ?
    Si c'est le ORDER BY qui pose problème essaie en créant un index sur auteur

    [EDIT]: Tu as bien des indexes sur exemplaires.id_notice et sur exemplaires.id_bib ?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Analyst
    Inscrit en
    Juillet 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 150
    Par défaut Commande explain
    Bonjour,
    Sous mysql, si tu précèdes ta requete par explain, cela t'aidera à voir où il perd son temps.

Discussions similaires

  1. temps execution requete UNION
    Par alcabk dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 23/10/2007, 17h15
  2. [VB.net] Probleme execution requete
    Par nico10gbb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/04/2006, 11h13
  3. [VB6] Probleme d'execution de requete
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 05/04/2006, 16h45
  4. probleme d'execution d'une requete sql
    Par rootdaoud dans le forum SGBD
    Réponses: 2
    Dernier message: 13/09/2005, 17h15
  5. Probleme d'execution d'une requete avec un Count
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 23/06/2004, 10h33

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