我想知道是否有其他程序或方式来配置除NHibernate探查器之外的其他程序。我的试用用完了,我买不起它。
那么还有其他选择吗?
答案 0 :(得分:40)
一个不错的选择是使用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或命名会话。
一旦你打开Glimpse,它就会显示在你网站的页面上,最小化到右下角(点击G打开它):
要在AJAX调用中使用NHibernate.Glimpse
,您需要在ajax选项卡中选择要检查的请求,然后通常在NHibernate
选项卡上查看数据。
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的一些我还不知道的事情。