Bonjour,
J'ai un soucis d'optimisation d'un batch. J'ai un traitement qui récupère des données dans un objet Client puis les enregistre en base de données. La récupération des données est assez rapide mais le commit en base prend un temps exponentiel.
Avec des logs aux bon endroits on se rend compte que les 300 premiers clients sont commités en 2 minutes, les 300 suivants en 5 minutes, les 300 d'après en 8 minutes, 11 minutes pour ceux qui suivent, puis 15 minutes, etc.
Chaque client est traité dans une transaction indépendante qui commence pour lui et commit avant de passer au suivant. Chaque transaction est par contre ouverte dans la même session hibernate.
Est-ce que quelqu'un aurait une idée sur le pourquoi de ce temps exponentiel d'un commit au suivant ou connaitrait une application à utiliser pour auditer ma base de données et savoir les actions à faire dessus en terme d'index ou autre qui pourrait accélérer le traitement ?
Merci.
Java J2EE
Hibernate
BDD Oracle
Partager