我需要定期将数据从 TMP 数据库复制到远程 PROD 数据库,并在列中进行一些数据修改。当我使用来自 PROD 数据库的 postgres_fdw 扩展(带有映射外部模式)时,复制一百万条记录的过程持续 6 分钟。
insert into prod.foreign_schema.foreign_table
(select * from tmp.public.table limit 1000000);
但是,当我使用 dblink 从 PROD 数据库中复制同一张表时(SQL 在 PROD 数据库上运行,而不是在 TEMP 上),该过程持续 20 秒。
insert into prod.public.table
(select * from dblink('host=192.1... port=5432 dbname=... user=… password=…. connect_timeout=2', 'select * from tmp.production.table limit 1000000') as tab (id integer…..)
);
如何优化和缩短从 TEMP 数据库复制数据的过程?
我必须在 TMP 数据库上运行 SQL 命令。TMP 和 PROD 数据库在同一个版本中 (10)。