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] récupérer le temps d'execution d'une requete


Sujet :

NHibernate

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 61
    Points : 59
    Points
    59
    Par défaut [NHibernate] récupérer le temps d'execution d'une requete
    Bonjour à tous,

    J'ai besoin de faire des statistiques sur les requête NHibernate (criteria) afin de connaitre le temps d’exécution et le Sql généré pour ensuite le sauvegarder dans une table sql. Y a t'il quelqu'un qui a déjà fait cela?

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 61
    Points : 59
    Points
    59
    Par défaut
    Dans l'esprit NHibernate profiler...

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    D'une manière générale, tous les SGBDR Client/Serveur ont des Profilers, tu peux donc t'en servir aussi.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 202
    Points
    2 202
    Par défaut
    Il y a beaucoup plus simple que tout cela dans NHibernate qui depuis la version 2.0 intégre la notion de statistiques.

    Un bon tuto ici.

    Les stats sont disponible dans la factory (stats valables pour tout l'usage de Nhibernate) ou dans la session (stats de l'uow courant).

    Dans la factory, on trouve entre autre les temps d'exécution des requêtes.

    Good Luck.

  5. #5
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 61
    Points : 59
    Points
    59
    Par défaut
    J'ai fait ce test, mais il ne prend en compte que les requêtes Sql mais pas les criteria.
    Dans mon code, la session NHibernate se créer dans le Begin_Request et se ferme au End_Request. J'effectue donc les stats juste avant de fermer la session.
    J'ai essayé avec log4net, il me sort bien les requêtes mais pas le temps d’exécution...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 202
    Points
    2 202
    Par défaut
    De toutes façon le criteria produit du SQL, donc ....

  7. #7
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    J'ai essayé avec log4net, il me sort bien les requêtes mais pas le temps d’exécution...
    Est ce pour un besoin temporaire (test de montée en charge etc.) lié à votre cycle de développement ou voulez vous logger cela de manière permanente?


    Si c'est ponctuel vous avez (exemple pour SQL Server) le profiler (clic sur outils dans SSMS puis sql profiler) qui vous permet de définir une trace temporaire (ou non) loggant ce que vous voulez (cela peut aller beaucoup plus loin que NH... sans forcément d’intérêt cependant...) dans un fichier une table etc...


    Vous pouvez même vous resservir de ce fichier de trace afin de rejouer une routine de requête par exemple...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  8. #8
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 61
    Points : 59
    Points
    59
    Par défaut
    Bonsoir,
    Merci pour vos conseils, j'ai opté pour log4net et DynamicProxy. Du coup je récupère la requête avec Log4Net et Avec DynamicProxy je démarre un StopWatch().
    Les logs des requêtes sont temporaires et sont là pour effectuer des tests de charges.
    Je travaille sur sql azure et pour le moment le Trace/Profiler n'est pas présent.

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

Discussions similaires

  1. Temps d'execution d'une requete
    Par toto2233 dans le forum Requêtes
    Réponses: 8
    Dernier message: 19/07/2007, 08h55
  2. Réf : Mesurer le temps d 'execution d 'une requete
    Par akrabmehdi dans le forum SQL
    Réponses: 1
    Dernier message: 10/07/2007, 20h48
  3. temp d'execution d'une requete sql
    Par mitoubra dans le forum JDBC
    Réponses: 4
    Dernier message: 15/06/2007, 22h34
  4. [Stratégie] Mesurer le temps d'exécution d'une requête
    Par nice dans le forum Général Java
    Réponses: 5
    Dernier message: 29/01/2006, 17h53
  5. Récupérer le temps d'execution d'une methode
    Par Janitrix dans le forum Général Java
    Réponses: 3
    Dernier message: 17/12/2005, 11h01

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