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

NHibernate Discussion :

[Nhibernate] Chargement requete tres long (10sec) pour peu d'enregistrements (5)


Sujet :

NHibernate

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 18
    Points
    18
    Par défaut [Nhibernate] Chargement requete tres long (10sec) pour peu d'enregistrements (5)
    Bonjour, débutant sur NHibernate j'ai un soucis avec une requête.

    Lorsque je l'exécute celle-ci met extrêmement de temps (5-10sec) et utilise au moins 60% du cpu, pourtant la table ne contient que 5 enregistrements.
    Ce problème est rencontré qu'à la première exécution quand je refais cette requête après avoir fermé et rouvert la session elle s'exécute normalement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ICriteria crit = session.CreateCriteria(typeof(Produit));
    crit.Add(Expression.Eq("Produit.Idpdt", id));
    Cette table est reliée à 5 autres. Ce qui est étrange c'est que ce n'est qu'au premier appel qu'elle prend extrêmement de temps.

    J'ai des dizaines d'autres requêtes qui marchent parfaitement sur d'autres tables.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Je rajoute le mapping :

    Produit.hbm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <class name="Test" table="produit" lazy="true">
        <id name="Idpdt" column="id_pdt" type="int">
          <generator class="increment" />
        </id>
        <many-to-one name="grpcmd" column="id_grp" cascade="save-update" />
        <many-to-one name="cmd" column="id_cmd" cascade="save-update" />
        <many-to-one name="Utilisateur" column="login_usr" cascade="save-update" not-null="true" />
        <many-to-one name="Marque" column="id_marque" cascade="save-update" />
        <property name="HeureDebut" column="heure_debut_appt" type="DateTime" not-null="true" />
        <property name="Editable" column="editable" type="Boolean" />
        <property name="Libpsr" column="lib_pdt" type="string" />
        <property name="Descpdt" column="desc_pdt" type="string" />
        <bag name="Modifie" inverse="true" lazy="true" cascade="delete">
          <key column="id_pdt" />
          <one-to-many class="Test" />
        </bag>
        <bag name="pieces" inverse="true" lazy="true" cascade="delete">
          <key column="id_pdt" />
          <one-to-many class="Test" />
        </bag>
      </class>
    commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        <class name="Test" table="commande" lazy="true">
        <id name="Idcmd" column="id_cmd" type="int">
          <generator class="increment" />
        </id>
        <many-to-one name="Groupe" column="id_grp" cascade="save-update" />
        <property name="Nomcmd" column="nom_cmd" type="string" />
        <property name="Desccmd" column="desc_cmd" type="string" />
     
        <bag name="Produit" inverse="true" lazy="true" cascade="delete">
          <key column="id_cmd" />
          <one-to-many class="Test" />
        </bag>
     
     
      </class>
      </class>
    groupe cmd.hbm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      <class name="Test" table="groupe" lazy="true">
        <id name="IdGrp" column="id_grp" type="int">
          <generator class="increment" />
        </id>
        <property name="NomGrp" column="nom_grp" type="string" not-null="true" />
        <property name="DescriptionGrp" column="description_grp" type="string" />
        <bag name="Produit" inverse="true" lazy="true" cascade="delete">
          <key column="id_grp" />
          <one-to-many class="Test" />
        </bag>
        <bag name="Commande" inverse="true" lazy="true" cascade="delete">
          <key column="id_grp" />
          <one-to-many class="Test" />
        </bag>
      </class>
    client

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
      <class name="Test" table="utilisateur" lazy="true">
        <id name="LoginUsr" column="login_usr" type="string">
          <generator class="assigned" />
        </id>
        <many-to-one name="Utilisateur" column="uti_login_usr" cascade="save-update" />
        <property name="Niveau" column="niveau" type="int" not-null="true" />
        <bag name="Produit" inverse="true" lazy="true" cascade="delete">
          <key column="login_usr" />
          <one-to-many class="Test" />
        </bag>
        <bag name="Modifie" inverse="true" lazy="true" cascade="delete">
          <key column="login_usr" />
          <one-to-many class="Test" />
        </bag>
      </class>
    marque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
      <class name="Test" table="marque" lazy="true">
        <id name="Idmarque" column="id_mark" type="int">
          <generator class="increment" />
        </id>
        <property name="Libmarque" column="lib_mark" type="string" />
        <property name="Defautmarque" column="defaut_mark" type="Boolean" />
        <bag name="Produit" inverse="true" lazy="true" cascade="delete">
          <key column="id_mep" />
          <one-to-many class="Test" />
        </bag>
        <bag name="Parametres" inverse="true" lazy="true" cascade="delete">
          <key column="id_mep" />
          <one-to-many class="Test" />
        </bag>
      </class>
    piece.hbm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      <class name="Test" table="piece" lazy="true">
        <composite-id name="Id" class="Test">
          <key-many-to-one name="Produit" class="Test" column="id_pdt" />
          <key-property name="idpiece" column="id_piece" type="int" />
        </composite-id>
        <many-to-one name="ParametresZone" column="id_param" cascade="save-update" not-null="true" />
        <bag name="Configuration" inverse="true" lazy="true" cascade="delete">
          <key>
            <column name="id_pdt" />
            <column name="id_piece" />
          </key>
          <one-to-many class="Test" />
        </bag>
        <many-to-one name="Prdouit" column="id_pdt" cascade="save-update" not-null="true" />
      </class>
    Bonne lecture ^^.

Discussions similaires

  1. Temps de traitement d'une requete tres long
    Par maskk dans le forum VBA Access
    Réponses: 5
    Dernier message: 21/01/2013, 09h37
  2. temps de chargements TRES long
    Par Beltegeuse dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/05/2008, 17h04
  3. Requete concernant des dates un peu complexe (pour moi)
    Par fayred dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/02/2008, 09h26
  4. Quel langage pour manipuler des entiers très longs ?
    Par mis_dj dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 10/05/2006, 22h12
  5. [VBA-E] Temps d'execution de requetes SQL tres long
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2006, 11h25

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