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