tutorial net mvc example ejemplo asp nhibernate nhprof

net - ¿Alternativas gratuitas al perfilador NHibernate?



nhibernate vb net example (4)

El problema con el uso de SQL Profiler es que algunas instrucciones (en particular las inserciones) se muestran individualmente y no hay forma de ver si NHibernate usó el procesamiento por lotes (http://www.codinginstinct.com/2009/08/profiling-nhibernate-batching .html).

NHibernate está utilizando log4net para registrar todas las sentencias sql; esto se puede usar para ver lo que realmente se envía a la base de datos.

<logger name="NHibernate.SQL" additivity="false"> <level value="ALL" /> <appender-ref ref="rollingFile" /> </logger>

Me pregunto si hay algún otro programa o forma de perfil que no sea el perfilador de NHibernate. Mi prueba se terminó y no hay forma de que pueda comprarla.

Entonces, ¿hay alguna alternativa por ahí?


Existe el Analizador de SQL que viene con SQL Server Management Studio 2005 y 2008. Los uso todo el tiempo y los encuentro invaluables.

También hay un Analizador de SQL para SQL Express en: http://sites.google.com/site/sqlprofiler/

Estos no son exactamente los mismos que el excelente perfilador de NHibernate, pero pueden ser igualmente útiles para reconocer operaciones costosas e ineficientes.


Me preguntaría ... ¿puedes permitirte no comprarlo? Solo cuesta $ 16 por mes en la tarifa de suscripción. Basado en mi prueba inicial con él, hizo una GRAN diferencia en el rendimiento de mi proyecto y me enseñó varias cosas sobre nHibernate que yo no sabía.


Una alternativa bastante buena sería usar el plugin Glimpse :

NHibernate.Glimpse

Muestra el SQL generado por NHibernate, su pila de llamadas asociada, las estadísticas de fábrica de la sesión, los tiempos de llamada, etc., todo en la parte inferior de la página actual o en una nueva ventana.

Glimpse se puede descargar desde: getglimpse.com

También hay una buena presentación en channel9: The Glimpse Team en Channel 9

Instalación para ASP.NET al 26-Sep-2013 10-Abr-2013

Instalación usando la consola de Package Manager:

PM> Install-Package Glimpse.AspNet PM> Install-Package NHibernate.Glimpse

Registre su fábrica de sesiones para poder ver las estadísticas globales:

NHibernate.Glimpse.Plugin.RegisterSessionFactory(mySessionFactory);

Ejecute su aplicación web y visite:

http://localhost:8080/Glimpse.axd

Suponiendo que la aplicación se ejecuta en localhost en el puerto 8080.

Desde allí, puede activar / desactivar Glimpse o nombrar la sesión.

http://j.mp/16tfXVZ

Una vez que haya activado Glimpse, aparecerá en las páginas de su sitio minimizadas en la esquina inferior derecha (haga clic en G para abrirlo):

http://j.mp/16thcEP

Para usar NHibernate.Glimpse con llamadas AJAX, debe seleccionar la solicitud que desea inspeccionar dentro de la pestaña ajax, y luego ver los datos en la pestaña NHibernate como siempre.

http://j.mp/16ti4cs

Solicitudes AJAX (esta configuración manual ya no es necesaria en la última versión)

Para que funcione con llamadas ajax, debe habilitarlas en función del tipo de contenido de la respuesta en ''Web.config''.

Para el kit de herramientas de control ajax UpdatePanel el text/plain tipo de text/plain contenido:

Se requiere la configuración de Glimpse para ASP.NET WebForms AJAX

Luego debe seleccionar la solicitud que desea inspeccionar dentro de la pestaña ajax.

Notas sobre la instalación de Asp.Net a partir del 9 de abril de 2013:

Instalar usando la consola de Package Manager:

PM> Install-Package NHibernate -Version 3.3.2.4000 PM> Install-Package Glimpse -Version 1.0.0-rc1 -Pre PM> Install-Package -IgnoreDependencies Glimpse.AspNet -Version 1.0.0-rc1 -Pre

Glimpse.AspNet debe instalarse con -IgnoreDependencies para que no actualice Glimpse.Core a 1.0.1 .

Git Clone NHibernate.Extensions :

git://github.com/ranzlee/NHibernate.Extensions.git

y agrega el proyecto Nhibernate.Glimpse a tu solución o crea el proyecto y agrega una referencia dll al mismo.

Agregar a Web.config :

</configuration> . . . <appSettings> <add key="nhibernate-logger" value="NHibernate.Glimpse.LoggerFactory, NHibernate.Glimpse"/> <add key="NHibernate.Glimpse.Loggers" value="command,connection,flush,load,transaction"/> </appSettings> </configuration>

Y asegúrese de haber establecido el providerName en su cadena de conexión. Ejemplo para el proveedor SqlClient:

<connectionStrings> <add name="TestDb" providerName="System.Data.SqlClient" connectionString="Server=example.com;database=nhibernate_test;User ID=postgres;Password=password;" /> </connectionStrings>

Y registra tu fábrica de sesiones:

NHibernate.Glimpse.Plugin.RegisterSessionFactory(SessionHolder.SessionFactory);