Использует ли ваше приложение log4net? Если это так, вам следует проверить конфигурацию log4net и уменьшить объем данных, которые вы регистрируете из NHibernate.
Пример проекта, над которым я сейчас работаю: для запроса, возвращающего 60 строк / объектов, запись всех сообщений журнала NHibernate на уровне DEBUG в файл увеличивает общую продолжительность сообщения NHProf с 8 мс до примерно 8000 мс! 1003 *
Пример конфигурации для ограничения вывода 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 занимают много времени.