【发布时间】:2020-10-03 13:22:09
【问题描述】:
我在MSSQL 有两张桌子。本质上两者是相同的。但是对于其中之一,当我尝试坚持使用saveAll() 时,这需要很多时间。
我的实体是:
@Data
@Entity
@Table(name = "INSTRUMENTOS_PIP")
@IdClass(value = InstrumentosPIPPk.class)
public class InstrumentosPIP{}
@Data
@Entity
@Table(name = "INSTRUMENTOS_VALMER")
@IdClass(value = InstrumentosValmerPk.class)
public class InstrumentosValmer{}
我的属性:
spring.jpa.properties.hibernate.jdbc.batch_size=20
spring.jpa.properties.hibernate.order_inserts=true
这是我坚持的方式。其中 valmers 和 pips 是大约 25,000 行的列表
vValmer.saveAll(valmers);
valmers.clear();
valmers = null;
System.gc();
vPIP.saveAll(pips);
pips.clear();
pips = null;
System.gc();
valmers 非常快,但 pips 不是。 valmers 花费 5 分钟,点 2 小时。处理顺序无关紧要。
我正在使用JPARepository。
【问题讨论】:
-
您的 MSSQL 服务器接受这么多并行请求的能力如何?
标签: spring-boot hibernate jpa spring-data-jpa repository