Каков наилучший способ улучшить производительность NHibernate? - PullRequest
61 голосов
/ 16 сентября 2008

У меня есть приложение, которое использует NHibernate в качестве ORM, и иногда оно испытывает проблемы с производительностью из-за того, как оно обращается к данным. Какие действия можно предпринять для повышения производительности NHibernate? (Пожалуйста, ограничьте одну рекомендацию за ответ)

Ответы [ 12 ]

1 голос
/ 20 сентября 2008

Если вы еще не используете отложенную загрузку (соответственно), начните. Извлечение коллекций, когда они вам не нужны, - пустая трата времени.

Глава Повышение производительности описывает этот и другие способы повышения производительности.

0 голосов
/ 13 августа 2009

То, что говорили Свободные Времени.

Прочтите главу 19 документации "Повышение производительности".
NHibernate: http://nhibernate.info/doc/nhibernate-reference/performance.html
Спящий режим: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html

Используйте SQL Profiler (или эквивалент для базы данных, которую вы используете) для поиска длительных запросов. Оптимизируйте эти запросы с соответствующими индексами.

Для вызовов базы данных, используемых почти на каждой странице приложения, используйте CreateMultiQuery для возврата нескольких наборов результатов из одного запроса к базе данных.

И, конечно же, кеш. Директива OutputCache для страниц / элементов управления. NHibernate кэширование данных.

...