Bonjour
J'ai remarqué une différence de temps de réponse entre une requête count en HQL et en SQL sur Oracle. Le code de ma requête HQL est semblable à celui-ci :
Cette requête prend 5 secondes pour 3020 enregistrements comptés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... Query hibernateQuery = this.getSession().createQuery("select count(*) from ..."); long count = ((Long) hibernateQuery.uniqueResult()).longValue();
Après avoir passé le paramètre hibernate.show_sql à true. J'ai exécuté la requête SQL générée, avec la méthode createSQLQuery. Celle-ci répond en moins d'une seconde. J'ai le fait le même test sur un client Oracle, j'observe le même temps de réponse.
Quelqu'un peut m'expliquer cette différence de temps en HQL et SQL. Faut-il privilégier le SQL au lieu du HQL pour ce genre de requête ?
Merci d'avance
Partager