当表的数据越来越大时,就会考虑使用增量数据同步了。
INSERT INTO T_TEMP_AA
SELECT * FROM PROD.AA@ODS_PROD WHERE CREATED_AT >= TRUNC(SYSDATE) - 1;
DELETE FROM T_ODS_AA T1
WHERE EXISTS(SELECT 1 FROM T_TEMP_AA T2 WHERE T1.ID = T2.ID);
INSERT INTO T_ODS_AA
SELECT * FROM T_TEMP_AA;
但是当T_ODS_AA 大到上亿级别时,明显第二步的剔除重复的速度就会特别慢了。此T_ODS_AA的数据条数为4亿。
这时候为ID字段添加索引或者主键,速度就会有明显提升。修改后只花了559s完成了数据的同步。