我有一个页面,我发出几个疑问,他们都使用log4net的记录:如何跟踪查询的原因/堆栈跟踪NHibernate的
<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通过id向我的一个表发出约10个查询。我想通过预加载数据来提高性能。但是我无法确定触发这些查询的地方。
我知道NHibernate的探查器可以把我放心,但我没有执照在工作中使用它。有没有其他方法可以找出这些查询的原因。我还分析了映射文件,但没有取得任何成功。
使用show-SQL在配置 – kalki