如:有A 表300万数据,B 表7000万数据,C表与A表结构一致。A表字段a1,a2与B表字段b1,b2可以匹配。
需求:通过A表字段a1与B表字段b1,查询出A表中,匹配B的记录,插入C表中,然后更新A表中a2字段为B表中b2 字段。
目前用for 循环,用exists,in,都很慢,各位有没有好的建议,谢谢。
需求:通过A表字段a1与B表字段b1,查询出A表中,匹配B的记录,插入C表中,然后更新A表中a2字段为B表中b2 字段。
目前用for 循环,用exists,in,都很慢,各位有没有好的建议,谢谢。
现在用for 匹配出来大概20万数据,要跑差不多两个小时。
insert/*+append */ into temp
select a.*
from a, b
where a.a1=b.b1
然后用insert /*+append */ into c select col1,col2 from temp
update b
set b.b2=(select c.c2 from c where ..)
exists (select 1 from c where b.x=c.x)
for循环1万以内的都很快,大于很慢