Hibernate 3.5.0 вызывает серьезные проблемы с производительностью - PullRequest
1 голос
/ 15 апреля 2010

Я недавно обновился с hibernate 3.3.1.GA до hibernate 3.5.0, и у меня много проблем с производительностью. В качестве теста я добавил около 8000 сущностей в свою БД (что, в свою очередь, приводит к сохранению других сущностей). Эти объекты сохраняются в пакетах по 20, так что транзакции не слишком велики по соображениям производительности.

При использовании hibernate 3.3.1.GA все 8000 объектов сохраняются примерно за 3 минуты. При использовании hibernate 3.5.0 он запускается медленнее, чем в hibernate 3.3.1. Но это становится все медленнее и медленнее. Около 4000 объектов иногда требуют 5 минут, чтобы сохранить пакет из 20. Если я затем перехожу на консоль mysql и вручную набираю оператор вставки из общего журнала запросов mysql, половина из них работает идеально за 0,00 секунды. И половина из них занимает много времени (возможно, 40 секунд) или время ожидания с «ОШИБКА 1205 (HY000): превышено время ожидания блокировки; попробуйте перезапустить транзакцию» из MySQL.

Что-то изменилось в управлении транзакциями в hibernate в версии 3.5.0, о котором я должен знать? Единственное, что я изменил, чтобы испытать эти непригодные проблемы с производительностью, это заменить следующие файлы jar hibernate 3.3.1.GA: com.springsource.org.hibernate-3.3.1.GA.jar, com.springsource.org.hibernate.annotations- 3.4.0.GA.jar, com.springsource.org.hibernate.annotations.common-3.3.0.ga.jar, com.springsource.javassist-3.3.0.ga.jar с новым выпуском hibernate 3.5.0 hibernate3 .jar and javassist-3.9.0.GA.jar.

Спасибо.

1 Ответ

0 голосов
/ 15 апреля 2010

Даже если я вижу несколько вещей, связанных с управлением транзакциями, в Hibernate 3.5.0-Final , то, что вы описываете, определенно не является нормальным (и я не могу найти ничего открытого вопрос о такой проблеме). Таким образом, хотя трудно сказать что-либо, не видя никакого кода, если единственное, что вы изменили, - это версия артефактов Hibernate, то, скорее всего, где-то существует регрессия.

Я предлагаю создать контрольный пример БЕЗ каких-либо материалов Spring, чтобы изолировать любые потенциальные проблемы с Hibernate (которые вам в любом случае понадобятся для сообщения о проблеме).

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