Précédent   Forum du club des développeurs et IT Pro > Dotnet > Accès aux données > NHibernate
NHibernate Forum d'entraide sur l'utilisation du mappeur objet/relationnel NHibernate.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/10/2011, 09h55   #1
geof51
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
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 :
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.
geof51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 11h22   #2
geof51
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
Je rajoute le mapping :

Produit.hbm :
Code :
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 :
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 :
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 :
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 :
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 :
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 ^^.
geof51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h44.


 
 
 
 
Partenaires

Hébergement Web