Asp.net 如何在NHibernate中跟踪查询的原因/堆栈跟踪
我有一个页面,其中我发布了一些查询,所有查询都使用log4net记录:Asp.net 如何在NHibernate中跟踪查询的原因/堆栈跟踪,asp.net,nhibernate,log4net,Asp.net,Nhibernate,Log4net,我有一个页面,其中我发布了一些查询,所有查询都使用log4net记录: <appender name="NHibernateAppenderSQL" type="log4net.Appender.RollingFileAppender"> <file value="c:\dev\log\nhibernate-sql.log" /> <appendToFile value="true" /> <maximumFileSize value="10MB" /&
<appender name="NHibernateAppenderSQL" type="log4net.Appender.RollingFileAppender">
<file value="c:\dev\log\nhibernate-sql.log" />
<appendToFile value="true" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %thread %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>
因此,我可以查看页面生存期内发出的所有查询(ASP.NET Web表单)。我发现出于某种原因,NHibernate向我的一个表发出了大约10个id查询。我希望通过预加载数据来提高性能。但是,我无法确定触发这些查询的位置
我知道NHibernate Profiler可以让我安心,但我没有在工作中使用它的许可证。有没有其他方法可以找出这些查询的原因。我还分析了映射文件,但没有成功。编辑:我假设您使用的是MVC。。。它似乎适用于普通的旧ASP.NET 我用它来找出慢点,提高我的网站性能。它是由StackOverflow创建的框架。它提供查询,通过添加步骤,您可以确定谁在调用它
它还与nHibernate集成,以显示执行的sql,以及每个页面渲染在sql中花费的时间。我使用ASP.NET Web表单,但谢谢,在将来可能会有用。我仔细检查了它,它似乎支持您的情况。