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 :

[Performance]Recuperer une liste important de données


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut [Performance]Recuperer une liste important de données
    Bonjour,

    Tout d'abord voici ma problématique :

    1)Un objet A contient un set d'objet B (en moyenne 25 objets B).
    2) Il y a un batch-size de 100 entre A et B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <Set name="setObjetB" lazy="true" batch-size="100" inverse="true" cascade="all-delete-orphan">
            	<key column="objetBid"/>
            	<one-to-many class="com.objetB"/>
            </Set>
    2)Je dois charger disons 2000 objet A et ensuite charger tous les objets B appartenant à ces objets A

    J'ai essayé 2 stratégies :
    1) Charger tous les objets A et ensuite charger les objets B. Le batch-size s'active, c'est rapide mais ça consomme de la mémoire
    2) Utiliser un scrollableResult pour charger les objets A. Le batch-size ne s'active pas, c'est moins rapide mais moins consommateur de mémoire.

    Perfs :
    1) temps = 36s
    mem utilisé = 37 Mo

    2)temps = 30s
    mem utilisé = 54mo

    A votre avis quel est la meilleur stratégie ?

    Merci

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Il n'y a pas de meilleure stratégie. C'est à toi de définir les besoins en fonction du contexte applicatif, des besoins du clients...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    le mieux pour un traîtement de type batch est de splité le nombre d'insertions par 100 et effectué un flush entres les traîtements de type batch

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/07/2010, 16h33
  2. Réponses: 0
    Dernier message: 02/06/2010, 23h57
  3. recuperer une liste de dataProvider
    Par charlix dans le forum Flash
    Réponses: 4
    Dernier message: 28/08/2008, 23h46
  4. Recuperer une liste (List) de valeur depuis une autre classe
    Par PasBoueno dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 22/07/2008, 14h53
  5. Réponses: 5
    Dernier message: 11/05/2006, 19h20

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