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

Hibernate Java Discussion :

Optimiser requête HQL


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut Optimiser requête HQL
    Bonjour,

    Cette requête SQL s'exécute en 1 seconde dans ma base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select p.*
    from PRODUIT p, MARCHE_PRODUIT mp
    where p.id_produit = mp.id_produit
    and mp.id_marche=1
    and p.id_constructeur=12;
    Je veux faire la même en HQL, mais elle dure 15 secondes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String requete = "from Produit p" 	
              +" where "+marche+" in elements(p.marches)"
              +" and p.constructeur.id in (:idConstructeurs)";
     
    Query query = session.createQuery(requete)
                           .setParameterList("idConstructeurs", idConstructeurs);
    Pourquoi cette différence ? Ai-je fait une erreur ?
    Merci

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    utilise un join

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par plsavary Voir le message

    Pourquoi cette différence ? Ai-je fait une erreur ?
    Merci
    C'est pas vraiment les mêmes requetes. Celle en hql implique au moins un inner join (utilise show_sql à true dans ta config pour avoir une idée).

    une requete comme çà ne serait-elle pas plus appropriée?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select p from Produit p where p.marches=:marche  and p.constructeur.id in (:idConstructeurs)";
    avec :marche un objet marché. Si ma mémoire d'hibernate est bonne, hsql accepte de tester comme çà le contenu d'un collection.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Merci pour ces réponses.

    C'est vrai c'était pas exactement la même requête.
    Ce que je veux faire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select p.*
    from PRODUIT p, MARCHE_PRODUIT mp
    where p.id_produit = mp.id_produit
    and mp.id_marche=1
    and p.id_constructeur in (12, 13, 14);
    Le code suivant génère une exception :Je vais réfléchir à l'idée du join.

Discussions similaires

  1. Optimisation d'une requête HQL
    Par imyJava dans le forum Hibernate
    Réponses: 2
    Dernier message: 15/03/2011, 15h25
  2. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 16h02
  3. Optimiser requête utilisant NOT IN
    Par Neilos dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/08/2005, 14h24
  4. optimisation requête
    Par alex2205 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 09/02/2005, 14h15
  5. optimisation requête SQL!!! help!!
    Par anathem62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/05/2004, 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