특정 값 변경 작업 중에 있는데, 테이블 설계가 잘못되어 있어, 변경되야 할 값이 들어간 테이블을 모두
수정하고 있습니다.
업데이트문이 93개의 테이블에 적용을 해야하여 아래와 같이 프로시저를 작성하였는데,
BEGIN TRAN
UPDATE 테이블
SET 열이름 = 값
WHERE 열이름 = 값
UPDATE 테이블
SET 열이름 = 값
WHERE 열이름 = 값
...
...
COMMIT TRAN
업데이트 중 문제가 있을 경우, 모두 롤백을 시켜야 하여
하나의 트랜잭션안에서 실행되도록 작성하였는데, 이게 문제인것인지ㅠ.ㅠ
테이블마다 외래키도 없고, 3개 테이블에는 다중 행(약 3000행)을 업데이트 처리하고 있습니다.
시간이 단축될 수 있는 방법이 있는지, 고수님들의 조언 부탁드립니다.
두서없이 작성한 글인데, 읽어주셔서 감사합니다~
Comment 1
-
루디먼트
2018.06.21 09:42
모두 다른 테이블이라면, 위의 방법이 최선일 듯 합니다.
트랜젝션을 묶지 않고, 조건을 만족할 방법이 없을 것 같네요.