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

Hibernate Java Discussion :

Commit très long.


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut Commit très long.
    Bonjour,

    Je suis débutant dans Java EE/Hibernate et je suis actuellement surpris d'une chose: la lenteur du commit d'une transaction chez moi.
    Voici le code Java que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    double startMs = System.currentTimeMillis();
    double end = (System.currentTimeMillis() - startMs);
    System.out.println("La commande " + textCommand + " a ete execute en " + end + "milisecondes");
    session.getTransaction().commit();
    end = (System.currentTimeMillis() - startMs);
    System.out.println("La commande " + textCommand + " a ete execute en " + end + "milisecondes");
    Et voici le resultat que j'obtiens:

    La commande MOVE 1 0 a ete execute en 14.0milisecondes
    Hibernate: update Position set carte_id=?, x=?, y=? where id=?
    La commande MOVE 1 0 a ete execute en 84.0milisecondes
    Environs 70 ms pour faire un update me parait beaucoup

    Des idées d'ou ça pourrait venir ? Sachant que ma table ne comporte pas plus de 2 entrées

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Personellement, vu ce qu'implique un commit, ça ne m'a pas l'air temps que ça. Le sgdb ne te rendra pas la main tant que ses io ne seront pas finis, et des ios, ça peux être lent.

    Commence déjà par comparer avec le temps que tu met sans hibernate

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Il faut savoir qu'Hibernate a un cache de session. Donc quand tu fais un update, ton update est mis en cache au niveau de ta session Hibernate, et ce n'est qu'au moment du commit (ou du flush de la session) que ta requête est transmise à la base. Quand je dis "ta requête" c'est "tes requêtes" si tu en as exécuté plusieurs durant ta transaction.

    Donc le 70ms ne sont pas que les millisecondes du commit, mais de l'envoie de ta requête à la base, du traitement de celle-ci, du commit et du renvoie de la réponse.

    Romain.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut
    J'utilise une base de type MYSQL et quand j’exécute la même commande ça prend pas moins de 3 ms
    Le problème c'est que ce genre de commande peut être envoyé une a deux fois par seconde par une même personne.
    Avec 100ms de traitement sans compter la connexion internet je trouve ça légèrement long

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par Sake_reflex Voir le message
    J'utilise une base de type MYSQL et quand j’exécute la même commande ça prend pas moins de 3 ms
    Encore une fois, mesuré comment?

Discussions similaires

  1. Texte très long dans une cellule
    Par rpapa dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 01/02/2019, 16h45
  2. Demarage des programmes très long
    Par venegan dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 02/03/2006, 16h50
  3. Démarrage de windows vraiment très long
    Par krfa1 dans le forum Windows XP
    Réponses: 16
    Dernier message: 23/10/2005, 12h37
  4. delete très long
    Par slefevre01 dans le forum Oracle
    Réponses: 7
    Dernier message: 06/10/2005, 13h16
  5. Très long texte dans Quick Report - Comment faire ?
    Par delphi+ dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/08/2005, 22h18

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