안녕하세요..
질문하나 올립니다.
테이블 하나가 너무 커져서 똑같은 구조에 테이블을 만들고 데이터를
나눌려고 합니다.
view를 만들어 bcp를 이용해서 일부를 새 테이블로 옮기고 기존에
테이블에 중복되는 자료를 삭제하고 있는데요..
그게 자료가 너무 많아서 벌써 27시간째 delete만 하고있는데 도데체
언제 끝날지 알수가 없네요..
총 데이터가 대략 이천만건 정도 되고 그중에서 지우는건 약 330만건
정도 됩니다.
(lock에 걸리진 않고 sp_who에서 상태는 sleep이고 cmd는 DELETE라고
나옵니다)
실제 운영하고있는 데이터서버라서 함부로 프로세스 죽이기도
그렇고..
제가 알기로는 DELETE시 프로세스를 강제로 kill하면 자동으로
delete 하기전으로 복구하지 않나요??
만약 현재까지 지워진 상태로 아무 이상없이 프로세스만 죽는다면
kill을 하고 싶은데..
그렇지 않다면 현재 delete만 27시간째 돌아가고 있는데 복구는 또
몇시간이 걸릴지 알수가 없네요..
질문을 요약하자면..
1. delete시 남은 시간을 알수 있는방법이 있나요?? 있다면??
2. delete 수행시 강제로 프로세스를 죽이면 복구를 하나요? 아님
현재까지 작업에서 그냥 멈추는건가요??
3. 혹시 delete 말고 효과적으로 많은데이터를 빨리 지울수 있는
방법은 없을까요??
(truncate table 은 where 조건같은것을 줄수는 없나요??)
4. delete시 로그기록하는 시간때문에 더 오래걸리지는 않나요?
그렇다면 로그에 쓰지않고 지우는 방법은??
이상입니다.
너무 두서없이 여쭤봐서 죄송합니다.
좋은저녁 되시고요~
부디 조언 부탁드립니다.~~ (^^)(__)
|