Hibernate Выдает слишком много запросов на MySQL - PullRequest
4 голосов
/ 26 марта 2011

Я использую hibernate 3.0 весной с Mysql 5. Я настроил источник данных JNDI в JBOSS и использую его в контексте приложения.

Моя проблема в том, что Hibernate выдает в среднем 466,4 запросов в секунду к базе данных практически без нагрузки на веб-сайт.

Фрагмент ApplicationContext.xml равен

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" scope="singleton">
    <property name="jndiName" value="java:MyCustomDSName" />
    <property name="resourceRef" value="true" /> 
</bean>

Я использую транзакцию JTA на уровне Java.Любая помощь приветствуется.

Ответы [ 3 ]

1 голос
/ 01 апреля 2011

Один из них должен иметь место

  • Вы получаете / обрабатываете слишком много запросов - вряд ли в dev.
  • Вы столкнулись с условием выбора N + 1- очень часто.

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

0 голосов
/ 27 октября 2016

Вы можете решить N + 1 вопрос прямо из модульных тестов . Кроме того, переключите все EAGER ассоциации на LAZY и инициализируйте те, которые вам нужны во время запроса, с помощью JOIN FETCH.

0 голосов
/ 03 апреля 2011

Как вы используете транзакции JTA? Если каждый метод Java помечен как требующий новой транзакции, это может объяснить часть вашей проблемы. Кроме того, ваши отношения объекта Hibernate должны быть пересмотрены. Если у вас сложные отношения, много загруженных объектов, определенных в ваших модельных отношениях, или круговые отношения, у вас могут возникнуть более сложные проблемы.

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