Alternativas libres a NHibernate profiler? [cerrado]


Me pregunto si hay algún otro programa o forma de crear un perfil que no sea NHibernate profiler. Mi juicio terminó y no hay manera de que pueda comprarlo.

Entonces, ¿hay alguna alternativa por ahí?

Author: M4N, 2011-06-19

4 answers

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

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

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

 12
Author: Digbyswift,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-19 17:41:09

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

NHibernate.Vislumbrar

Muestra el SQL generado por NHibernate, su pila de llamadas asociada, estadísticas de fábrica de sesiones, tiempos de llamadas, 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 bonita presentación en channel9: El Equipo de Glimpse en Channel 9


Instalación para ASP.NET as of 26-Sep-2013 10-Apr-2013

Instalación mediante la consola del Gestor de paquetes:

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

Registre su session factory para poder ver estadísticas globales:

NHibernate.Glimpse.Plugin.RegisterSessionFactory(mySessionFactory);

Ejecute su aplicación web y visite:

http://localhost:8080/Glimpse.axd

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

Desde allí puede activar/desactivar Vislumbre o nombrar el sesion.

Http://j.mp/16tfXVZ

Una vez que se dio vuelta Vislumbre en que aparecerá en las páginas de su sitio minimizado a la esquina inferior derecha (haga clic en la 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 de costumbre.

Http://j.mp/16ti4cs


Solicitudes AJAX (este manual la configuración 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 ajax control toolkit UpdatePanel se requiere el tipo de contenido text/plain:

Configuración de Vislumbre requerida para ASP.NET WebForms AJAX

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


Notas sobre la instalación para Asp.Net a partir de 9-Abril-2013:

Instalar usando la consola del Gestor de paquetes:

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 se actualice Glimpse.Core a 1.0.1.

Git Clone NHibernate.Extensions:

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

Y agregue Nhibernate.Glimpse proyecto a su solución o compile el proyecto y agregue una referencia dll a él.

Añadir 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 registrarse su fábrica de sesiones:

NHibernate.Glimpse.Plugin.RegisterSessionFactory(SessionHolder.SessionFactory);
 39
Author: Răzvan Flavius Panda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-26 16:09:09

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

NHibernate está usando 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>
 4
Author: Muxa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-30 20:59:24

Me gustaría preguntarte... ¿puedes permitirte no comprarlo? Es solo $16 / 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 aún no sabía.

 3
Author: Jason Barile,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-20 06:04:36