在 Java 和 DB2 中优化具有 500k 记录的大型 INSERT SELECT 事务

问题描述 投票:0回答:1

我有一个连接到 DB2 数据库的 Java 和 Spring boot 应用程序。我正在使用

NamedParameterJdbcTemplate
对 SELECT 的结果执行 INSERT,如下所示:

namedJdbcTemplate.execute("INSERT INTO tableA ... SELECT ... FROM tableB", inputParams, (PreparedStatementCallback<Integer>) ps -> ps.executeUpdate());

问题是这花费的时间太长,因为 SELECT 检索超过 500k 行。有没有办法优化一下?

值得一提的是,我的 SELECT 有一些我需要的 TRIM 和连接。 预先感谢

java spring-boot jdbc db2
1个回答
0
投票

除了您可能对查询或 Java 代码进行的改进之外,我们在这里看不到 您可以检查一下:JdbcTemplate.batchUpdate 和 SpringBatch 并看看它是否使其速度更快并满足您的需求(我从未使用过它们,但我想它们可能对您的情况有帮助) 并尝试尽可能优化查询 如果您想要具有特定过滤器的内容,则不要检索所有 500k 行,而是首先按这些值过滤选择

© www.soinside.com 2019 - 2024. All rights reserved.