一个6000W的表A,一个1800W表B,如何将A表中的一个字段更新为B表中的一个字段的值,按两表中一个字段关联?

Oracle 11gR2,一个6000W的表A,一个1800W表B,现在业务需要,将A表中的一个字段更新为B表中的一个字段的值,按两表中一个字段关联。最效率的方法是怎么搞?update (select /+parallel(T2,8)/T1.cust_team_id a1, T2.cust_team_id b1 from serv_t T1, TMP_serv_cust_team T2 ...显示全部

Oracle 11gR2,一个6000W的表A,一个1800W表B,现在业务需要,将A表中的一个字段更新为B表中的一个字段的值,按两表中一个字段关联。最效率的方法是怎么搞?

update (select /+parallel(T2,8)/T1.cust_team_id a1, T2.cust_team_id b1

      from serv_t T1, TMP_serv_cust_team T2
     where T1.serv_id = T2.serv_id
       and T1.state in ('F0A','F0X')
       --and mod(T2.serv_id, 10) = 1)

set a1 = b1;

上面这种方式跟游标的方式都试了,都不是太快。上面这种方式把注释放开的话,一个分组要18-20分钟,还是太慢。

收起
参与9

查看其它 2 个回答y18511664518的回答

y18511664518y18511664518技术总监长城超云

一次更新10万,然后commit,做一个for,关闭表的log日志

金融其它 · 2017-07-04
浏览3471

回答者

y18511664518
技术总监长城超云
擅长领域: 数据库存储关系型数据库

y18511664518 最近回答过的问题

回答状态

  • 发布时间:2017-07-04
  • 关注会员:3 人
  • 回答浏览:3471
  • X社区推广