在a用户下有pp表,在b用户下也有pp表,现在想在c用户下的pp表中插入a用户和b用户的pp表的无重复并集,有什么好的解决方法,
insert into c.pp
select * from a.pp
union 
select * from b.pp这种方法比较慢,还有别的方法吗?

解决方案 »

  1.   

    分开插入试试
    insert into c.pp
    select * from a.pp;
    insert into c.pp
    select * from b.pp;
    如果是一次性的操作,就这样,如果是定期更新,就用job实现。
      

  2.   

    如果重复数据很大那就分开插:先插只有a有的,然后在b有的,最后是都有的,可以利用full join实现。
    如果重复数据不多就全部插了再删除重复的。insert语句:insert /*+ append*/ into
      

  3.   

    删除重复的使用rowid操作提高性能