NHibernate profiler的免费替代品?

时间:2011-06-19 17:26:42

标签: nhibernate nhprof

我想知道是否有其他程序或方式来配置除NHibernate探查器之外的其他程序。我的试用用完了,我买不起它。

那么还有其他选择吗?

4 个答案:

答案 0 :(得分:40)

一个不错的选择是使用Glimpse插件:

NHibernate.Glimpse

它显示NHibernate生成的SQL,其关联的调用堆栈,会话工厂统计信息,调用计时等等,都在当前页面的底部或新窗口中。

Glimpse可以从以下网址下载:getglimpse.com

关于channel9还有一个很好的演示:The Glimpse Team on Channel 9


截至2013年9月26日的ASP.NET安装 2013年4月10日

使用软件包管理器控制台进行安装:

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

注册会话工厂,以便能够查看全局统计信息:

NHibernate.Glimpse.Plugin.RegisterSessionFactory(mySessionFactory);

运行您的网络应用程序并访问:

http://localhost:8080/Glimpse.axd

假设应用程序在端口8080的localhost上运行。

从那里你可以打开/关闭Glimpse或命名会话。

enter image description here 一旦你打开Glimpse,它就会显示在你网站的页面上,最小化到右下角(点击G打开它):

enter image description here

要在AJAX调用中使用NHibernate.Glimpse,您需要在ajax选项卡中选择要检查的请求,然后通常在NHibernate选项卡上查看数据。

enter image description here


AJAX请求(最新版本不再需要此手动设置)

要使其与ajax调用一起使用,您需要根据“Web.config”中响应的内容类型启用它们。

对于ajax控件工具包UpdatePanel,需要内容类型text/plain

Glimpse configuration required for ASP.NET WebForms AJAX

然后,您需要在ajax选项卡中选择要检查的请求。


截至2013年4月9日Asp.Net的安装说明:

使用软件包管理器控制台进行安装:

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必须与-IgnoreDependencies一起安装,因此不会将Glimpse.Core更新为1.0.1

Git Clone NHibernate.Extensions

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

并将Nhibernate.Glimpse项目添加到您的解决方案或构建项目并添加一个dll引用。

添加到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>

并确保在连接字符串上设置了providerName。 SqlClient提供程序的示例:

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

注册会话工厂:

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

答案 1 :(得分:12)

SQL Server Management Studio 2005和2008附带了SQL Profiler。我一直使用它们并发现它们非常宝贵。

SQL Express还有一个SQL Profiler:http://sites.google.com/site/sqlprofiler/

这些与优秀的NHibernate分析器不完全相同,但在识别昂贵且低效的操作时同样有用。

答案 2 :(得分:4)

使用SQL事件探查器的问题是某些语句(特别是插入)是单独显示的,并且无法查看NHibernate是否使用了批处理(http://www.codinginstinct.com/2009/08/profiling-的nhibernate-batching.html)。

NHibernate使用log4net来记录所有sql语句 - 这可用于查看实际发送到数据库的内容。

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

答案 3 :(得分:3)

我会问自己......你能买得起吗?订阅率仅为每月16美元。基于我的初步试验,它在我的项目表现上产生了巨大的差异,并教会了我关于nHibernate的一些我还不知道的事情。