Если у вас действительно есть приложение, которое должно считывать 4 столбца данных, 100 000 строк за раз и производительность является критически важной, тогда не используйте NHibernate. Однако, если это не похоже на типичное использование базы данных в вашем приложении, значит, оно не слишком много говорит вам. (Это немного похоже на сравнение скорости мотоцикла, пикапа и грузовика за четверть мили).
Несмотря на то, что использование ORM связано с накладными расходами, в реальном мире вы получаете больше, чем теряете. Кэширование (первый и второй уровень), отложенная загрузка, пакетная обработка запросов и т. Д. Обеспечивают повышение производительности, которого вы просто не получаете, работая ближе к металлу.
Был предпринят ряд попыток сравнить NHibernate с другими ORM и стратегиями доступа к данным (например, это сравнение NHibernate и EF ). Они, как правило, противоречивы, и, по моему опыту использования NHibernate в течение пяти лет, они мало актуальны.
Даже если вы находите области, где вам нужно настроить производительность, это, как правило, относительно простой и недорогой вопрос по сравнению с огромным количеством преимуществ и экономией, которые ORM может принести при разработке приложений.