안녕하세요.
SQLSERVER 2012 버전을 사용하고 있는데 하루 70만건 가까이 생성이 됩니다.
(총 데이터건수는 3억 5천만건 정도)
최근에 시스템이 부쩍 느려져서 최근 3개월 데이터만 보관하고 3개월이 지난
데이터는 백업 테이블로 옮기려고 합니다.
AZURE VM에서 서비스 되고 있고 메모리는 14기가 정도 됩니다.
여기서 궁금한 점은
1. 매일 야간에 70만건 데이터를 삭제하는데 문제가 없는지 그리고 효율적으로 삭제하는 방법
2. 삭제 후 필수적으로 해야되는 작업이 있는지 (EX 인덱스 리빌드 등)
24시간 데이터가 수집되는 테이블인데 위 작업들을 진행했을경우
데이터가 INSERT 되는데 문제는 없는지 궁금합니다.
감사합니다.
Comment 1
-
이리
2020.06.22 09:37
한번에 많은 data를 삭제하면 TABLE LOCK이 발생할 수 있습니다.
2천건씩 반복문으로 DELAY를 0.01초씩 주는것을 권장 드립니다.
아니면 잠시 세션을 막고 남겨야 할 data만 새 테이블에 insert 하고 rename을 하는것도 방법입니다.
대량의 data를 삭제 후 rebuid를 해주시면 좋지만 enterprise 버전이 아닐경우 TABLE LOCK이 발생합니다.