一个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 个回答江南无烟雨的回答

江南无烟雨江南无烟雨研发工程师某券商

nologging那个我也试过,但是是10个分组10个窗口跑的,然后直接僵死了,看那6000W的表好像锁死了。

汽车 · 2017-07-04
浏览3359

回答者

江南无烟雨
研发工程师某券商
擅长领域: 服务器大数据存储

江南无烟雨 最近回答过的问题

回答状态

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