2010-01-29 4 views
0

Будет ли улучшение производительности, если я удалю компонент сущности (методы поиска) и введю слой DAO. Я хочу сделать это в основном для чтения данных из БД. У меня есть процесс в моем проекте, в котором содержится около 15 сущностей-искателей сущностей в потоке, поэтому, если я удалю компоненты Entity или добавлю DAO и оставлю сущности, как это будет, произойдет значительное улучшение производительности? Я использую EJB 2.1.Методы поиска объектов Bean VS DAO?

ответ

1

Извлечение данных с помощью Entity Bean finders загружает все атрибуты для объекта, даже если вам может понадобиться только одно из них для данной задачи. Таким образом, действительно, методы поиска EJB имеют накладные расходы, и это особенно верно при извлечении больших наборов данных (даже не говоря уже о том, когда вы вызываете 15 из них).

Таким образом, чтобы получить наборы большие объемы данных только для чтения, это действительно может быть предпочтительнее говорить с базой данных непосредственно из Session Bean (я предполагаю, что у вас есть фасад Session Bean) с использованием JDBC API. Этот шаблон известен как Fast Lane Reader, если я хорошо помню.

Просто имейте в виду, что реализация этого шаблона приносит в жертву согласованность данных для производительности, поскольку запросы, выполняемые на необработанном уровне JDBC, не видят ожидающих изменений, внесенных в бизнес-информацию, представленную Enterprise Beans.

Смежные вопросы