전체 테이블 삭제시 인덱스 0 7 1,992

by 이종표 [2014.03.24 14:54:34]


오라클 DB 입니다

많은 데이터 건수가 전체 삭제 후 insert 되는 테이블이 있습니다.

속도를 위해 인덱스를 만들어 놨는데, 인덱스가 적용이 안되는지

전체 삭제 후 insert 된 후 테이블 조회가 느리네요..

어떻게 처리 해야 하나요? ^^

by DarkBee [2014.03.24 15:27:41]
오라클 버전이 어떻게 되시는지..

10g 이전버전이라면 delete 대신 truncate 를 이용하세요

by 마농 [2014.03.24 16:04:03]
버전이 영향이 있나요?
버전 상관 없이 통용되는 얘기인듯 한데???

by DarkBee [2014.03.24 16:40:57]
아 10g 부터 shrink 기능을 이용해서 HWM 를 낮춰주는 역할을 해주는 걸로 알고 있어여. LOB 제외

by 마농 [2014.03.24 17:05:02]
shrink 는 여러가지 제약조건이 맞아 떨어져야만 효과가 있으므로
이 경우를 포함하여 통상적으로 그냥 Truncate 가 정답일 듯.

by DarkBee [2014.03.24 17:06:26]
맞습니다. 개발시에 truncate 권한을 줄지 의문이라 10g 이상이면 쉬링크 기능을 쓰라고 한건데 

제가 생각이 너무 앞으로 가버렸네요 ㅎㅎ

by 아발란체 [2014.03.24 16:01:28]

원래부터 느린 것이라면 인덱스를 잘못 만든 것인지 원인을 찾아야 할 것 같습니다.
최근 느려진 것이라면 실행계획을 확인해보세요.
힌트 지정 등으로 문제가 없는데도 속도가 느리다면
인덱스를 삭제 후 다시 생성하거나
테이블을 재생성 하거나(클러스터링 팩터↑)
분산 처리(파티션, 클러스터링)를 검토 하셔야 할 것 같습니다.
데이타가 총 몇 건이나 되나요?


by 홍상표 [2014.03.25 09:29:39]
insert후 통계정보 생성이 필요 할 듯 합니다..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입