Будьте в спящем режиме: динамичное динамическое обновление - вставляет - Эффекты Производительности

Используя динамическое обновление или динамичный - вставляют, имеет положительный, хотя обычно небольшой только на производительности, равно как и упомянуто http://www.mkyong.com/hibernate/hibernate-dynamic-update-attribute-example/

Но справочная документация упоминает, что это могло иметь отрицательные эффекты производительности также, как упомянуто ниже в http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-class:

Хотя эти настройки могут увеличить производительность в некоторых случаях, они могут на самом деле уменьшить производительность в других.

Кто-либо может предложить некоторый пример/сценарий, упомянув отрицательное влияние производительности того же?

20
задан Pascal Thivent 4 August 2010 в 12:42
поделиться

1 ответ

Hibernate кэширует фактические строки INSERT/SELECT/UPDATE SQL для каждой сущности, и очевидным преимуществом является то, что ему не нужно вычислять SQL, когда вы хотите сохранить, найти или обновить сущность.

Однако при использовании dynamic-insert или dynamic-update Hibernate должен каждый раз генерировать соответствующую строку SQL, что приводит к снижению производительности на стороне Hibernate.

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

Моя точка зрения заключается в том, что динамическая вставка и динамическое обновление могут быть интересны для таблиц с толстым столбцом blob или таблиц с огромным количеством столбцов. В других случаях я не убежден, что динамическая вставка или обновление всегда означают увеличение производительности (я не использую их по умолчанию). Но, как всегда, вы должны измерить это.

См. также

48
ответ дан 29 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: