J'ai récemment mis à jour de Hibernate 3.3.1.GA à Hibernate 3.5.0 et j'ai beaucoup de problèmes de performance. En tant que test, j'ai ajouté environ 8000 entités à ma base de données (qui à leur tour entraînent l'enregistrement d'autres entités). Ces entités sont sauvegardées par lots de 20 afin que les transactions ne soient pas trop importantes pour des raisons de performances. Lors de l'utilisation de Hibernate 3.3.1.GA, toutes les entités 8000 sont enregistrées en environ 3 minutes. En utilisant Hibernate 3.5.0, il démarre plus lentement qu'avec Hibernate 3.3.1. Mais il devient plus lent et plus lent. À environ 4 000 entités, il faut parfois 5 minutes pour enregistrer un lot de 20. Si je passe ensuite à une console mysql et que je saisis manuellement une instruction d'insertion dans le journal de requête mysql, la moitié fonctionne parfaitement en 0,00 secondes. Et la moitié d'entre eux prend beaucoup de temps (peut-être 40 secondes) ou timeout avec "ERROR 1205 (HY000): Lock wait timeout dépassé, essayez de redémarrer la transaction" à partir de MySQL.Hibernate 3.5.0 provoque des problèmes de performances extrêmes
Est-ce que quelque chose a changé dans la gestion des transactions d'hibernate dans la version 3.5.0 dont je devrais être au courant? La seule chose que j'ai changé pour rencontrer ces problèmes de performances inutilisables est de remplacer les fichiers JAR hibernate 3.3.1.GA suivants: com.springsource.org.hibernate-3.3.1.GA.jar, com.springsource.org.hibernate.annotations- 3.4.0.GA.jar, com.springsource.org.hibernate.annotations.common-3.3.0.ga.jar, com.springsource.javassist-3.3.0.ga.jar avec la nouvelle version hibernate 3.5.0 hibernate3 .jar et javassist-3.9.0.GA.jar.
Merci.