728x90
오라클에서 이관 작업중에 수시로 테이블을 delete 하고 새로 넣는데 700만건 까진 그럭저럭 5분안으로 되었다
1000만건이 넘어가는 경우 그리고 디비가 busy 할 경우 30분이 지나도 반응이 없고 rock 도 걸리지 않았다
delete 의 경우는 건당 undo 및 로그에 대한 기록을 하면서 진행되기에 truncate 를 하지 않고 하는 습관 때문에
많이 시간과 리소스가 소모 되었다 취소를 하고 커넥션도 끊고 새로 truncate 를 날려도 리소스가 사용중이라는 메시지가
나왔다.. 내가 시간이 진행된 만큼 rollback이 돌아서 1시간이상을 이러지도 저러지도 못하는 문제가 생겻다..
truncate 를 자주 안쓰고 내용은 알지만 데이터가 크고 리소스가 소모가 심할땐 꼭truncate 로 진행을 해야겟다.
delete 는 로그를 남기고 truncate 는 안남기니 당연히 실행 속도 차이가 크고 데이터가 클수록 그 차이는 더욱 커진다
728x90
'sql' 카테고리의 다른 글
오라클 utc time epoch 값 date 변환 (0) | 2018.05.23 |
---|---|
오라클 글자 byte 단위로 substr 하기 (0) | 2018.02.09 |
오라클 패키지 호출 구조 (0) | 2017.11.28 |
서브쿼리 종류중 select 절에 사용하는 스칼라 서브 쿼리 (0) | 2016.11.11 |
mybatis 사용 안하고 select key키 대체 prepareStatement 직접 사용시 insert 구문 입력 성공 리턴값 확인 (0) | 2015.12.02 |