안녕하세요
질문 드릴내용은
한테이블의 데이터가 700만건 정도 되는데
1000건씩
여기있는 데이터를 다른 테이블로 옮길려고 합니다.
DB 쿼리분석기가 아니라 프로그램 상으로 옮길려고 합니다.
SELECT TOP 1000 컬럼1,컬럼2
FROM 테이블 WHERE 키 not in (SELECT 컬럼1 FROM 옮길테이블)
에서 루프를 돌리죠
for 를 갯수만큼 돌려서
갯수만큼 다른 옮길테이블에 인서트를시키는 겁니다
for(int i = 0 ; i < list.size() ; i++){
가져오는 데이터를 다른 테이블에 인서트
INSERT INTO 옮길테이블
VALUES(루프 돌려서 값셋팅)
}
문제는 인서트 자체가 너무 느립니다.
혹시 락이 걸려서 그런걸까요?
방법이 없을까요??
SELECT TOP 1000 컬럼1,컬럼2
FROM 테이블 WHERE 키 not in (SELECT 컬럼1 FROM 옮길테이블)
여기서 with nolock을 쓰면 혹시 빠를까요??
테이블의 데이터는 700만건에서 ~ 1000만건 됩니다.
답변 부탁드립니다.
|