在oracle / postgresql中复制表数据的最快方法

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

我有一个Spring Boot应用程序,用于根据最近更新的日期将数据从temp复制到永久表。仅在上次更新日期大于所需日期时才进行复制,因此不会复制所有记录。目前,该表有大约30万条记录,而使用Spring JPA的过程要花2个小时以上的时间(对于所有记录),这根本不可行。目标是将其降低到15分钟以下。我正在尝试使用JDBCtemplate带来多少不同。请使用pl / sql脚本是更好的选择吗?还想看看是否还有更好的选择。感谢您的时间。

目前正在使用oracle数据库,但可以进行postgresql迁移。

谢谢!

spring oracle plsql spring-data-jpa spring-jdbc
1个回答
2
投票

您可以通过直接的SQL查询(在Oracle或PostgreSQL上运行)执行此操作。假设您的temp_table与永久表具有相同的列,最后更新的日期列称为last_updated,并且您想复制自2020-05-03之后的所有更新记录,则可以编写如下查询:

INSERT INTO perm_table
SELECT *
FROM temp_table
WHERE last_updated > TO_DATE('2020-05-03', 'YYYY-MM-DD')

在您的应用中,您将直接通过占位符或通过'2020-05-03'传递JdbcTemplate

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