Le Tue, 29 Dec 2009 17:29:38 +0100, Florian Desbois <fdesbois@codelutin.com> a écrit :
Bonjour à tous, Bonjour,
Voilà, j'ai constaté que les méthodes findBy des DAO prenaient beaucoup de temps à l'exécution et augmentait au fur et a mesure. Sur un algorithme d'import d'un fichier contenant 85000 lignes, il est impensable d'avoir un temps qui augmente au fur et a mesure de l'appel au findBy.
Pour m'en rendre compte, j'ai remplacé le findBy par une simple requête SQL (ou HQL ca marche aussi) avec Hibernate, et le temps d'exécution est instantané (grâce a un index sur la base) et n'augmente plus du tout dans le temps. Moi je voulais rebondir là dessus, à mon avis c'est ton index qui fait gagner du temps et pas l'utilisation ou non des criterias. De toute façon si tu utilises des criterias ou des requêtes hql, le résultat devrait être le même en SQL.
Il y a donc un réel souci sur l'utilisation des Criteria d'Hibernate dans ToPIA.
En parallèle j'ai travaillé sur une classe pour facilement construire une requête HQL (voir : http://nuiton.org/issues/show/178 ).
Cette classe (TopiaQuery) est vraiment simple d'utilisation et permet de créer différentes requêtes plus ou moins complexe et d'interpréter précisément les résultats (type de retour). En essayant de remplacer toutes les utilisations des Criteria par cette classe, le temps d'exécution a fortement diminué, notamment sur une grosse exécution comme décrite plus haut.
Alors l'idée, est-ce que ça vous convient de remplacer les criteria par l'utilisation de TopiaQuery ? Tu vas pas réussir à avoir les mêmes possibilités que les criterias ou la syntaxe hql. Juste un exemple comment tu fais pour faire des jointures ou des sous-requêtes ?
A l'heure actuelle une version beta de TopiaQuery est sur le trunk. Elle a été légèrement modifié pour être plus souple au niveau des generic (notamment pour les retours au moment de l'exécution de la requête).
Donc voilà, j'espère ne pas avoir été trop long, mais qu'en pensez-vous ?
Cordialement,
Florian Julien
_______________________________________________ Topia-devel mailing list Topia-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/topia-devel