2012-01-25 4 views
2

오라클에서 대용량 insert-into-select-from 문을 수행하고 있으며 실행 취소 공간이 부족합니다 (ORA-30036 : 실행 취소 테이블 공간 'UNDOTBS1'에서 세그먼트를 8 개까지 확장 할 수 없음).Oracle에서 대용량 삽입 작업을 수행 할 때 인덱스를 비활성화하거나 삭제해야합니까?

목표 테이블에 인덱스를 h 제하고 삽입이 완료 될 때 인덱스를 다시 작성하는 것이 일반적 인 것으로 보입니다.

테이블의 색인/제약 조건을 비활성화하는 것이 좋습니까? 인덱스/제약 조건을 삭제하는 것과 다른 점은 무엇입니까?

답변

1

색인을 삭제하면로드하는 것이 더 빠릅니다. 테이블의 복구 가능성에 관심이 없으면 테이블에 삽입하는 동안 로깅을 해제하여 실행 취소를 생성하지 않을 수도 있습니다. 위험은 DBA가 데이터베이스를 복구해야하는 경우 테이블에 손상 오류가 표시된다는 것입니다. 괜찮을지도 모른다 테이블/데이타베이스의 사용법에 따라서. 로드 후에 인덱스를 다시 작성하여 데이터가로드 된 후 모든 인덱스가 작성되도록해야합니다. 따라서 인덱스를 끄면 아무 것도 얻지 못할 것이라고 생각하지 않습니다.

+0

인덱스/제약 조건 삭제 및 비활성화의 차이점을 명확하게 설명해 주시겠습니까? –

관련 문제