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

Bases de données Delphi Discussion :

Optimisation de requete SQL


Sujet :

Bases de données Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 190
    Points : 218
    Points
    218
    Par défaut Optimisation de requete SQL
    bonjour

    pouvez vous me dire laquelle de ces deux requetes est la plus rapide, et pourquoi ?

    j'utilise le BDE et FIREBIRD

    select H.*,O.*
    from hist H , operation O
    where O.opr_id=H.opr_id
    and H.his_date >= "09/19/2006"
    and H.his_date < "10/20/2006"
    and opr_id in (select opr_id from operation where opr_typref="IN")
    and (opr_id not in (select B.opr_id from bonlivr B where B.opr_id=O.opr_id ) or opr_okblqte=1)
    order by HIS_DATE desc

    select H.*,O.*
    from hist H , operation O
    where O.opr_id=H.opr_id
    and H.his_date >= "09/19/2006"
    and H.his_date < "10/20/2006"
    and O.opr_typref="IN"
    and (O.opr_id not in (select opr_id from bonlivr) or O.opr_okblqte=1)
    order by HIS_DATE desc

    Merci

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    La deuxieme et ci dessous en mieux avec une vrai jointure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select H.*,O.*
    from hist H inner join operation O on O.opr_id=H.opr_id
    Where H.his_date >= "09/19/2006"
    and H.his_date < "10/20/2006"
    and O.opr_typref="IN"
    and (O.opr_id not in (select opr_id from bonlivr) or O.opr_okblqte=1)
    order by HIS_DATE desc
    Et je pense qu'il serait aussi possible de faire une autre joiture avec la table bonlivr

    A tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select H.*,O.*
    from hist H inner join (operation O inner join bonliv B on O.opr_id <> B.opr_id )
    on O.opr_id=H.opr_id
    Where H.his_date >= "09/19/2006"
    and H.his_date < "10/20/2006"
    and O.opr_typref="IN"
    and O.opr_okblqte=1
    order by HIS_DATE desc

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 190
    Points : 218
    Points
    218
    Par défaut
    Merci

    la solution que tu propose est plus de 4* plus rapide

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

Discussions similaires

  1. [MySQL] Optimisation de requete SQL
    Par fabien14 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/09/2006, 09h39
  2. Optimisation de requetes SQL sous oracle
    Par santana2006 dans le forum Oracle
    Réponses: 5
    Dernier message: 28/08/2006, 19h26
  3. Réponses: 2
    Dernier message: 17/08/2006, 11h49
  4. Optimisation de requete SQL
    Par dark_vidor dans le forum Requêtes
    Réponses: 12
    Dernier message: 15/01/2006, 20h40
  5. Optimiser une Requetes SQL sous ASP
    Par NeHuS dans le forum ASP
    Réponses: 8
    Dernier message: 18/04/2005, 16h26

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