A feature @DynamicUpdate
do Hibernate pode ser útil e interessante em alguns cenários especificos! Os cenários que me vem a cabeça agora:
Com relação a performance, o foco maior é na pressão colocada no banco de dados, pois é aqui onde pode-se colher melhores frutos ao configurar o Hibernate. Por exemplo, se você tem uma tabela com várias colunas indexadas usar a conf padrão do Hibernate pode se tornar um gargalo:
https://use-the-index-luke.com/sql/dml/update
E alguns bancos de dados, como Oracle, atualizar somente as colunas necessárias faz diferença no volume de logging gerado (UNDO e REDO) pelo banco. Ou seja, quanto mais log gerado mais escrita em disco, o que pode ser crítico em cenários de alto-throughput:
https://blog.dbi-services.com/full-page-logging-in-postgres-and-oracle/?source=post_page-----e3a04d6a8bd2----------------------
Na minha opinião, como regra geral, favoreça o padrão do Hibernate devido ao cache de statements. Ou seja, use somente @DynamicUpdate
onde de fato for necessário e após um bom benchmarking com métricas e tudo mais!
Boost Secondary Index Queries with Index Only Scan