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 :

Optimiser une requête..est-ce possible ?


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut Optimiser une requête..est-ce possible ?
    Bonjour,

    je suis pas très doué en sql, et souhaiterais savoir s'il est possible d'améliorer ce genre de resquête ? Elle fonctionne très bien seulement je crois que l'on peut faire des jointures si quelqu'un pouvais m'aider en commentant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT p.nom_page FROM pages p,contenuspages c, images i WHERE c.id_elmt=i.id_gimg AND c.typ_elmt="gimg" AND p.id_page=c.id_page AND i.id_img=1
    Merci de votre aide.



    Déplacé par BiD0uille depuis PHP

  2. #2
    Membre du Club

    Inscrit en
    Décembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 52
    Points : 63
    Points
    63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT p.nom_page FROM pages p,contenuspages c, images i WHERE c.id_elmt=i.id_gimg AND c.typ_elmt="gimg" AND p.id_page=c.id_page AND i.id_img=1
    devient avec jointure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT p.nom_page FROM pages p INNER JOIN contenuspages c ON c.id_page = p.id_page INNER JOIN images i ON c.id_elmt = i.id_gimg WHERE c.typ_elmt = "gimg" AND i.id_img = 1

  3. #3
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    euh... en quoi y a t-il "optimisation" là ? ce n'est que la syntaxe qui change...

    Thierry8 : regarde surtout du coté des indexes sur ces tables.
    Google is watching you !

  4. #4
    Membre confirmé Avatar de KibitO
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 616
    Points : 606
    Points
    606
    Par défaut
    Pour optimiser, je te conseille de faire tes critères de sélection avant la jointure.

    En effet Charette a proposé une autre synthaxe mais pas d'optimisation.

  5. #5
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    L'optimisation ca consisterait surtout a regarder s'il y a des index sur les données qui sont dans le where, en gros les id_page, id_elmt, id_...

    Tu peux vérifier que ta requête les utilise bien avec un explain plan.
    Mais a priori, si tes id sont déjà des index, ta requête est déjà correcte.

  6. #6
    Membre confirmé Avatar de KibitO
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 616
    Points : 606
    Points
    606
    Par défaut
    Quelle soit correcte, là n'est pas le problème

    On cherche à l'optimiser. Tu as essayé ma méthode ? Parce que faire une projection au départ quand on connait la valeur de restriction ça élimine pas mal d'occurrences... je sais que j'ai raison de ce point de vue là, je le sais

  7. #7
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    je parlais de "correcte" d'un point de vue optimisation. Si Mysql est aussi bien foutu qu'oracle il sait choisir le meilleur chemin en fonction des index qu'il a à disposition.

  8. #8
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    oui normalement à ce niveau mysql gère automatiquement les critère, qu'il soit en fin ou en début !

    Je vous remercie de ces informations

  9. #9
    Membre confirmé Avatar de KibitO
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 616
    Points : 606
    Points
    606
    Par défaut
    Oh ?

    Je pensais que même Oracle ne le faisait pas..

  10. #10
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Normalement si, mais pour cela, une condition tout de même. Que les statistiques de la base soient a jour. Si le ANALYZE STATISTICS n'est pas fait régulièrement, Oracle (et Mysql) se planteront dans l'estimation du meilleur cout.

Discussions similaires

  1. [Toutes versions] Une requête est-elle possible ?
    Par florianne dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/04/2017, 21h51
  2. Deux requêtes dans une seule requête, est-ce possible ?
    Par Stephane_br dans le forum Développement
    Réponses: 3
    Dernier message: 08/07/2011, 15h35
  3. Requête avec une condition, est-ce possible ?
    Par le_chomeur dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/07/2010, 16h10
  4. 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
  5. Réponses: 19
    Dernier message: 26/01/2005, 10h41

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