我正在尝试通过创建外表来使用foreign_database_wrapper将Oracle数据库迁移到Postgres。
但是由于外部表的行为类似于Oracle的视图,因此在执行任何查询时,它会从原始源获取数据,因此会增加处理时间。
截至目前,为了维护Postgres端的物理数据,我正在创建表并在其中插入这些数据。
例如:create table employee_details as select * from emp_det;
其中employee_details是物理表,emp_det是外表
但是我觉得这个过程有点多余,我们需要不时地操作这个表(新的插入,更新或删除)
因此,如果有人可以分享一些相关的方式,我可以用其他模式保存这些数据。
此致
答案 0 :(得分:1)
查看相同的Github issue。
oracle_fdw不会在PostgreSQL端存储Oracle数据。 每次访问外部表都会直接访问Oracle数据库。
如果您想要物理上位于PostgreSQL数据库中的数据副本,您可以像您描述的那样进行,也可以使用物化视图:
CREATE MATERIALIZED VIEW emp_det_mv AS SELECT * FROM emp_det;
这将做同样的事情,但更简单。要刷新数据,您可以运行
REFRESH MATERIALIZED VIEW emp_det_mv;