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

JDBC Java Discussion :

[Données persistantes] Problème du N+1 [FAQ]


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut [Données persistantes] Problème du N+1
    Bonjour,

    J'ai entendus parlet plusieurs fois du Problème des N+1 lorsque l'on travail avec des données persistantes et des outils comme EJB et Hibernate ... mais je n'ai jamais trouvé une explication claire de ce qu'est ce problème.
    Quelqu'un peut-il m'aider ?[/b]

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Bonjour,

    le problème n+1 désigne un problème de performance et de multiplication des échanges entre le serveur d'aplication et le SGBD.

    n+1 est le nombre de requetes nécessaires à la récupération de l'ensemble des données d'un objet (n est le nombre d'objets lié à l'objet de base)

    Soit A un objet contenant lui même un objet B et un objet C

    Pour avoir un objet java complet le framework O/R va tout d'abord effectuer une première requete pour mapper les champs propres à l'objet A, puis une autre requete pour alimenter l'objet B et enfin une dernière pour alimenter l'objet C. Donc 3 requêtes pour mapper l'objet A

    Ici les objet B et C sont des objets simple (sans sous classe) mais on voit que le nombre de requêtes peut rapidement devenir assez conséquent.

    NB : Hibernate propose une solution à ce problème pour forcer la récupération de l'ensemble des propriétés d'un objet en une seule requête (join fetch))

  3. #3
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut
    Ok, merci. Au moins c'est clair !

    On voit facilement ce que celà peut donner si les relations sont du typn e n-n ou 1-n ...

    J'en conclus : Avec Hibernate faire attention si on récupère les données en mode lazy !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. données persistantes et application web
    Par eponette dans le forum JSF
    Réponses: 17
    Dernier message: 28/01/2007, 18h43
  2. [VB]Lecture dans une base de donnée posant problème
    Par polo-j dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 23/03/2006, 00h16
  3. [Récupération]Base de données après problème disque
    Par Cyborg289 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 15/02/2006, 15h08
  4. [VB.NET][FW 2005] Données persistantes
    Par ekinox17 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/02/2006, 12h56
  5. Delphi - Base donnée Paradox, problème de nom des champs
    Par mjp dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/01/2005, 21h10

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