오라클 9i 대량 update 질문입니다, 0 2 427

by 감자 [SQL Query] [2021.08.02 12:09:09]


오라클 9i 환경에서 160만개 정도의 데이터행을 업데이트 해야되는 상황인데

그냥 조인 걸어서 update를 돌리면 끝날 기미가 안보여서 질문드립니다.

merge into 구문을 사용하려고 해보았는데

not matched 부분이 필요없는데 필수로 입력해야하고

값을 넣어서 돌려봤더니 현재는 구현되어 있지 않은 기능이라네요.

 

merge into [테이블1] a

using [테이블2] b

on (조건)

when matched then update set

a.[컬럼1]=b.[컬럼1]

a.[컬럼2]=b.[컬럼2]

when not matched then

insert [컬럼] values [값]

;

 

update 시간 줄이는 방법좀 알려주시면 감사하겠습니다...

by 우리집아찌 [2021.08.02 13:39:26]

우선 대량 업데이트시 운영중인 테이블이 이라면

plsql 로 commit 단위를 좀 작게 하여서 실행하시는개 좋습니다 ( 전체를 한번에 하면 db lock 이 걸릴 위험성이 있습니다) 

 db가 사용되시는 시간에 하는걸 추천드립니다 


by 마농 [2021.08.03 09:25:49]

적절한 인덱스가 없어서 느린 것일 수 있습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입