|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Nicolas DELFOURDéveloppeur Web Inscription : novembre 2009 Messages : 57 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Nicolas DELFOURDéveloppeur Web Inscription : novembre 2009 Messages : 57 ![]() |
Dans l'esprit NHibernate profiler...
|
|
|
00
|
|
|
#3 |
![]() ![]() ![]() |
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 ! |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 238 ![]() |
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. |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Nicolas DELFOURDéveloppeur Web Inscription : novembre 2009 Messages : 57 ![]() |
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... |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 238 ![]() |
De toutes façon le criteria produit du SQL, donc ....
|
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() |
Citation:
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 |
|
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Nicolas DELFOURDéveloppeur Web Inscription : novembre 2009 Messages : 57 ![]() |
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. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com