Postgres:我们如何保存使用外部数据包装器

时间:2017-07-28 10:21:30

标签: database oracle postgresql oracle-fdw

我正在尝试通过创建外表来使用foreign_database_wrapper将Oracle数据库迁移到Postgres。

但是由于外部表的行为类似于Oracle的视图,因此在执行任何查询时,它会从原始源获取数据,因此会增加处理时间。

截至目前,为了维护Postgres端的物理数据,我正在创建表并在其中插入这些数据。

例如:create table employee_details as select * from emp_det;

其中employee_details是物理表,emp_det是外表

但是我觉得这个过程有点多余,我们需要不时地操作这个表(新的插入,更新或删除)

因此,如果有人可以分享一些相关的方式,我可以用其他模式保存这些数据。

此致

1 个答案:

答案 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;