T1테이블 : pk가 A , update칼럼이 B,C,D입니다.
T2,T3,T4,T5,T6테이블에서 B,C,D칼럼에 UPDATE할 값을 가져오는데 T6테이블이 필요한 index가 하나도 없습니다.
더군다나 T6는 건수가 1억건이 넘습니다.
update T1
set(B,C,D)
=
(select
B,C,D
from T2,T3,T4,T5,T6
where .....
....
and T1.A=T2.A
)
where T1.B is null
이렇게 해서 update시키는데 T1.A is null 은 100건이고 select 절의 소요시간은 5분입니다.
근데 위처럼 update하니 한건식 업데이트가 되어 100*5분이 되어 500분이란 소요시간이 걸리더군요...
select 절의 결과를 임시테이블에 저장한후 update하면 5분이면 되는데....
임시테이블을 만들지 않고 5분에 100건을 update할수 는 없을까요? |