Рекомендации по оптимизации NHibernate с большими объемами данных - PullRequest
0 голосов
/ 30 сентября 2011

У меня довольно сложное отображение для некоторых объектов моего класса для NHibernate.У меня все правильно отображается;однако на сохранение элементов уходит примерно 10-15 минут, а на их загрузку - более 21 минуты, что, конечно, недопустимо.

Вот моя ситуация.

У меня есть 3 класса,давайте назовем их Foo, Bar и Test.У класса Foo есть свойство, представляющее собой список с многозначным отображением класса Bar.Bar имеет свойство, представляющее собой список с отображением «многие ко многим» класса Test.Наконец, у Test есть свойство, представляющее собой список с отображением «многие ко многим» класса Bar.Все три класса имеют различные другие связанные с ними свойства других типов классов, которые загружаются.

В настоящее время у меня не включена отложенная загрузка, которую я планирую реализовать в ближайшее время, но проблемаЯ сталкиваюсь с тем, что многие свойства для 3 классов нужны сразу.

Мой первый вопрос такой.У меня есть 250 сохраненных классов Foo, 500 классов Bar и 1000 классов Test.При загрузке моего первого класса Foo он загружает столбцы, которые находятся в его списке, которые, наоборот, содержат список всех 1000 классов тестов, каждый класс теста имеет список всех 500 классов столбцов.Достаточно ли осведомлены данные NHibernate, чтобы знать, что классы 1000 Test были загружены и классы 500 Bar уже загружены, поэтому, когда он переходит к следующему классу Foo, ему не нужно повторно загружать все классы Bar и Test снова?

Что бы вы, ребята, порекомендовали бы для повышения производительности?

1 Ответ

1 голос
/ 30 сентября 2011
  1. Включить Lazy-Load
  2. Проверьте журналы NHibernate, чтобы увидеть, что именно выбрано, или используйте NHibernate Profiler
  3. Рассмотрите возможность использования кеша
...