안녕하세요 초보 개발자 입니다.
데이타 베이스 관련해서 속도 부분에 때문에 글을 올립니다.
우선 상황은 이렇습니다.
테이블 A(원본) 에는 데이타 량이 계속 증가 됩니다. 지금 총 2백만건 정도가 있습니다.
그런데 제가 테이블 B(TEMP) 라는 테이블을 만들어서 안에 있는 내용을 TRUNCATE 하고
17만건 정도 인서트 합니다.(반복 지우고 인서트 말그대로 TEMP 테이블)
그리고 프로시저 A 가 테이블B에 있는 17만건에 대해서 테이블 A(원본) 테이블과 조인(키)해서
원본에 있으면 업데이트를 하고 없으면 인서트 작업을 합니다.
그런데 여기 문제가 발생합니다. 인서트는 빠르게 하는것 같은데 업데이트 부분이 시간 소요가 엄청 걸립니다.
대략 20분 넘게 걸리는것 같습니다.
해당 부분에 대해서 좀더 적은 시간으로 업데이트를 할수 있는 방법을 제시해주신다면 감사하겠습니다.
감사합니다.
Comment 1
-
catchv
2014.02.26 13:25
UPDATE 구문에서 WHERE 절에 들어가는 컬럼들이 인덱스로 설정되어 있는지 확인해 보시면 될 것 같습니다.
UPDATE 테이블
SET ~~~~~
WHERE '여기 컬럼 인덱스 확인'