0

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

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

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

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

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

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

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

问候,

4

1 回答 1

1

请参阅相同的Github 问题

oracle_fdw 不在 PostgreSQL 端存储 Oracle 数据。对外部表的每次访问都直接访问 Oracle 数据库。

如果您想要物理位于 PostgreSQL 数据库中的数据副本,您可以按照您描述的方式进行操作,也可以使用物化视图:

CREATE MATERIALIZED VIEW emp_det_mv AS SELECT * FROM emp_det;

这将做同样的事情,但更简单。要刷新数据,您可以运行

REFRESH MATERIALIZED VIEW emp_det_mv;
于 2017-07-28T10:42:07.793 回答