更快地刷新Oracle中的表

时间:2014-09-25 15:56:25

标签: plsql oracle10g

我在Oracle 10g中有一个过程,它将数据从登台表复制到主表。

-- move data to final table
DELETE FROM my_table;
INSERT INTO my_table
    SELECT * FROM my_table_s;
COMMIT;

此表有~3M记录。删除语句非常慢。我可以使用TRUNCATE加速它,但这会创建一个小数据不可用的时间窗口。

是否有更好的方法来执行此类移动,既可以在任何给定时间维护任何可能查询的数据,也不会使使用这些表对象使任何程序包无效?

2 个答案:

答案 0 :(得分:0)

您可能希望查看物化视图: http://docs.oracle.com/cd/E11882_01/server.112/e10706/repmview.htm

您可以创建MView,然后手动刷新。您可以使用FAST REFRESH机制(使用物化视图日志)加快刷新机制。

答案 1 :(得分:-1)

使用实体化视图不会将对视图的更改回退,无论其类型为可写,只读还是其他类型,因此最好在所需表上执行批量选择操作并执行提交操作。