アプリケーションは log4net を使用していますか? その場合は、log4net の構成を確認し、NHibernate からログに記録するデータの量を減らす必要があります。
私が現在取り組んでいるプロジェクトの例: 60 行/オブジェクトを返すクエリの場合、すべての NHibernate ログ メッセージを DEBUG レベルでファイルに記録すると、NHProf が報告する合計期間が 8 ミリ秒から約 8000 ミリ秒に増加します!
NHibernate の出力を制限するための設定例:
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="trace" />
</root>
<logger name="NHibernate">
<level value="WARN" />
</logger>
これで問題が解決しない場合は、dotTrace や ANTS Profiler などのパフォーマンス プロファイリング ツールを使用して、コードの潜在的なボトルネックを特定できます。これにより、/NHibernate のコード内のどのメソッドに多くの時間がかかっているかが明確に示されます。