51만건 update문 문의요 0 11 1,737

by 쏭트레기 [PL/SQL] update [2017.07.28 14:16:26]


update tmptb

set colb = cola

이건데요 51만건정도라 속도가 넘 느린데

 

다른방법으로 빨리 할수있는방법이 있을까요?

by 우리집아찌 [2017.07.28 14:34:03]

merge into 문

 


by jkson [2017.07.28 15:29:30]

같은 로우의 컬럼 복사라 merge into가 효과가 있을까요?


by 우리집아찌 [2017.07.28 14:35:10]

 새로 테이블 생성후 테이블 switch

 


by 우리집아찌 [2017.07.28 14:40:21]

테이블 switch 시 인덱스명 pk명도 같이 switch 해주어야함


by 쏭트레기 [2017.07.28 15:10:06]

저 두가지 방법은 쓸수가 없는데 다른방법없을까용?


by jkson [2017.07.28 15:24:19]

쿼리가 실제로 저거예요?

만약 where 절까지 있는 거라면

데이터가 51만건이라 느린 건지

update 대상을 찾는 데 오래 걸리는지 부터 확인해야할 것 같은데요.

51만 건 정도고 하드웨어가 어느 정도 사양이 된다면 20초 내외로 update 가능하실텐데..

실제 저 쿼린데 느리다면

1.update 대상 컬럼에 lock이 걸린 row가 있다.

2.트리거가 동작했다.

3.update 대상 컬럼에 인덱스가 많다.


by 마농 [2017.07.28 15:40:43]

올려주신 쿼리가 실제 쿼리라면? 느릴 이유가 없어 보입니다.
건수 만큼 적당히 느리다면. 느리다고 표현하기는 어려울 듯 하네요.
건수에 비해서 너~무 느리다면? 다른 이유가 있을 듯 하구요.


by 우리집아찌 [2017.07.28 16:41:42]

//jkson

모바일에서는 답변이 안되서 ...

위의 쿼리가 맞다면 merge into 는 의미가 없겠네

서브쿼리 쓰지 않는다면 느릴 이유는 없어보는데

근데 왜 위의 두가지 방법은 안된다고 하는건지


by 쏭트레기 [2017.07.28 17:42:23]

저 테이블이 뷰고 암호화도 있고 트리거도 있어서 느린듯요 ㅜㅜ


by jkson [2017.07.28 17:55:38]

원테이블에 바로 업데이트 가능하신지 알아보시고

해당 컬럼이 트리거 로직과 상관 없다면 비운영시간에 해당트리거 disable시키고 업데이트 수행하시거나 상관있는 컬럼만 트리거 타게 트리거를 수정하세요.


by 마농 [2017.07.31 09:47:32]

해당 암호화 뷰에 트리거가 걸려 있겠네요.
업데이트 하고자 하는 항목이 암호화와 상관 없는 컬럼이라면?
원본테이블에 직접 업데이트 하세요.

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