一尘不染

休眠:动态更新动态插入-性能影响

hibernate

http://www.mkyong.com/hibernate/hibernate/hibernate-dynamic-update-attribute-
example/也提到了使用dynamic-update或dynamic-
insert有积极的作用,尽管通常只对性能有一点影响

但是参考文档提到,这也会对性能产生负面影响,如下所述:http :
//docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-
declaration-
class:

尽管这些设置在某些情况下可以提高性能,但实际上在其他情况下却可以降低性能。

有人可以建议一些示例/场景提及相同的负面性能影响吗?


阅读 209

收藏
2020-06-20

共1个答案

一尘不染

Hibernate为 每个 实体缓存实际的INSERT / SELECT / UPDATE
SQL字符串,其明显的好处是,当您要保留,查找或更新实体时,它不必计算SQL。

但是,当使用动态插入或动态更新时,Hibernate每次都必须生成相应的SQL字符串,因此,在Hibernate方面会降低性能。

换句话说,在数据库端和hibernate端的开销之间需要权衡。

我的观点是,对于具有胖blob列的表或具有大量列的表,动态插入和动态更新可能会很有趣。在其他情况下,我不相信动态插入或更新总是意味着提高性能(默认情况下我不使用它们)。但与往常一样,您应该对其进行衡量。

也可以看看

2020-06-20