데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요.
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이 발생합니다.