Oracle Delete문 실행시 Cpu에 대한 궁금증 질문드립니다. 0 5 2,733

by 똥쟁이찰스 [Oracle 기초] [2013.01.10 15:40:20]


안녕하세요 날씨가 많이 춥네요.

얼마 전 11만 Row 정도를 Delete문을 실행을 하였습니다.

평상시 개발계에 DB서버에서는 이런증상을 보이지 않았었는데요.(물론 운영하는 서버와는 다르겠지만요.)

그런데 처음 격는 상황이 있어서 문의를 드립니다.

해당 테이블에는 5백만건의 데이터가 들어있으며 PK와 Index가 걸려있습니다.

Delete문은 다른 조건 없이 어느 하루의 데이터를 지우는 작업이였으며 약 11만건 정도의 데이터를 지웠습니다.

실행을 하고 난 후 서버의 Cpu 사용율을 보니 코어 하나의 IO Wait이 100%차지하며 변동이 되지 않아 이상함을 느끼고

실행취소를 하였습니다.

근데 30~40초가량의 시간동안 장애가 발생하였는데 원인을 분석하다 보니 풀리지 않는 궁금증이 생겼습니다.

첫 질문은 약 10만건가량의 Delete문이 위와 같은 많은 부하를 가져다 줄 수 있는지,

두 번째는 Cpu Core 1개의 사용률이 100%가 된다고하여 해당 DB Connection Fail이 일어날 수 있는지 궁금합니다.

두 번째 질문에서는 100%로 잡혀있는 코어에 다시 할당이 되어지는지도 궁금합니다.

많은 의견 부탁드리겠습니다.







by 부쉬맨 [2013.01.10 16:09:14]
delete 문장이 건건히 지우나요?
한번에 지우나요?
건건히 sqa 쌓이게 날린다면 저러한 문제를 발생하는 케이스를 제가 테스트해본적이있어서
첫번째문의에대해서는 가능성이 높습니다.

delete 문장이 건건히 날라간다는 과정하에..
제경우는 db가죽었습니다. out of memroy를 뱉어내면서...-_-;; 물론 제pc에 설치한 db지요

두번째는 다른분이...

by 똥쟁이찰스 [2013.01.10 16:44:53]
부쉬맨님 먼저 관심가져주시고 댓글 남겨주셔서 너무 감사합니다.

말씀중에 이해가 가지 안는 부분이

건단위로 지우는 것과 한번의 지우는 것인지에 대한 이해가 안갑니다^^;;

DELETE문은 하루치의 데이터를 하나의 쿼리에서 삭제를 합니다.

제가 많이 부족하여 이해를 못 함을 너그러히....ㅡㅜ

다시 답변 부탁 드리겠습니다^^;

by 짱아 [2013.01.11 00:58:08]
delete 문은 내부적으로 지워야 하는 대상을 검색하기 위해 select 문을 실행 합니다. 댓글로 보아 하루치 데이터가 11만건이라면해당 테이블의 총 규모는 상당히 big 할거라 생각 되는데요?. 아마 어떤 이력을 쌓는 업무 테이블이 그렇죠? 히스토리성 테이블들요. 그런데 그럼 big한 테이블의 하루치 데이터를 지우기 위해 내부적으로 select 할때 table full scan 이 일어 난다거나 차라리 full scan 을 해서 조회하는것이 빠른데 index 를 읽어 table를 다시 access 한다면 성능에 상당한 영향을 주며 cpu 점유율이 높아 질수 있습니다. 또한 너무 오래걸릴거 같아 취소를 하셨는데 취소와 동시에 오라클 내부적으로 롤백을 하게 되므로 그또한 cpu 를 점유 할수 있다 생각 되고요.  그래서 저런 빅한 테이블은 파티션 테이블로 대부분 관리 하지요!  하루치 데이터를 delete 하는것보다 파티션을 만들어 해당 일파티션을 truncate 하는것이 상당히 빠르니까요. 또한 ILM 측면도 있구요! delete 와 truncate 차이는 뭐 설명 안드려도 될듯 하구요. 짧은 소견 이었습니다. 

by 똥쟁이찰스 [2013.01.11 20:03:49]
짱아님 감사합니다.

현재 저희 DB와 관련해서 알아봐야 겠네요.^^

부쉬맨님 짱아님 감사합니다. 좋은 주말 보내세요.^^

by 똥쟁이찰스 [2013.01.11 20:04:50]
헉... 답변은 한개만 채택이 가능하군요...;;;;

두 분다 채택을 해드리고 싶었는데. 짱아님도 많은 도움 되었습니다. 감사합니다!^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입