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

Développement Web en Java Discussion :

Spring transactional optimisation


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut Spring transactional optimisation
    Bonjour,

    Je suis bloqué sur un sujet et j'aimerai votre aide :

    j'ai actuellement une boucle transactionnelle (annotation transactionnal avec propagation J'oubliais de préciser qu'on utilise une propagation transactionnelle de type PROPAGATION_REQUIRES_NEW) qui effectue 2 delete de 2 tables donc Si un des 2 delete échoue, on fait un rollback. Le problème çest que cette boucle est appelée 400.000 fois et prends des heures. On voudrait l'optimiser. On a pensé à changer le prototype de la méthode en prenant non pas les 2 objets unitairement mais une collection pour inclure dans une seule transaction plusieurs centaines de delete des 2 tables. Sauf que rendre transactionnelle cela peut faire des rollback sur ces centaines de requêtes ce qui n'est pas le but final. Bref comment optimiser cela sans changer de base (Base SQL impérative car l'intégrité et la disponibilité des données sont essentiels) ?

    Merci par avance

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    Je ne connais pas forcément le contexte, mais voici quelques astuces qui pourraient peut-être t'aider :
    • Eviter de passer par une boucle, réaliser une opération de type bulk (exemple Spring insert | exemple Spring delete).
    • Utiliser l'isolation par défaut (qui prendra celui du SGBDR, souvent ISOLATION_READ_COMMITTED sauf si MySQL) au lieu de PROPAGATION_REQUIRES_NEW qui va suspendre la transaction actuelle pour en créer un nouveau. Créer une nouvelle transaction est couteux.


    A+
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

Discussions similaires

  1. [Data] Spring, transactions et threads
    Par cecile_31 dans le forum Spring
    Réponses: 8
    Dernier message: 16/07/2008, 13h47
  2. [TOUS] Isolation des transactions : Optimisation
    Par dymezac dans le forum MS SQL Server
    Réponses: 17
    Dernier message: 03/09/2007, 18h03
  3. Réponses: 1
    Dernier message: 12/06/2006, 19h02
  4. [ spring ] transaction tomcat
    Par hocinema dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 11/10/2005, 21h04

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