Почему Spring's @Transactional Help Performance - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть метод, который потенциально может сделать много обращений к базе данных при проверке списка сущностей с использованием проходимого распознавателя по умолчанию в Hibernate.Если я аннотирую его @Transactional, он работает почти в четыре раза быстрее.Несколько вопросов:

1) Почему это быстрее?

2) Как я могу повторить это увеличение скорости, не делая метод транзакционным?У меня нет абсолютно никакой необходимости заключать этот метод в транзакцию, и его использование противоречит реальному смыслу метода.

1 Ответ

1 голос
/ 13 февраля 2012

Я считаю, что ваша логика базы данных требует транзакции. Если транзакция выполняется, например, из-за того, что Spring создал ее на основе вашей аннотации, эти операции присоединятся к ней. Если транзакция не выполняется, им придется пройти через процесс получения соединения, запуска транзакции и, вероятно, установки сеанса Hibernate при каждом вызове.

Как это расходится с намерением вашего метода?

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