반응형

 Oracle 10g Table 데이터 삭제후 size변경관련
Oracle>기타 1427
정종필(miso177150) 2007-12-10 14:21:15.0

안녕하세요.

Oracle 10g를 사용하구있구요..특정 Table 편의를위해 "A"라고하겠습니다.

A 테이블에 성능Data가 들어가있습니다. 2006년 6월부터 현재까지의  data가 들어가있는데

정책변경으로 인해서,최근 3달만 보관하기로해서..2007년 8월까지의 data는 모두삭제를 했습니다.

삭제하기전 table사이즈는 100G였고,삭제한후에도 여전히 100G입니다.

 

Reorg를 통해서만,Table의 사이즈를 현재 data가 저장된 용량으로 만들수 있나요??

Reorg를 하지 않고,삭제된 data만큼 table사이즈를 갱신할 수 있는 방법이 있으면 알려주시기 바랍니다.

고수님들의 답변 부탁드리겠습니다.

김민수(minsu74) 07/12/10
 Oracle 10g Table 데이터 삭제후 size변경관련

Oracle 10g 를 사용하시면 Online Segment Shrink 기능을 이용하셔서

HWM 의 조정이 가능하여 Table Size를 줄이실 수 있습니다.

대량의 데이터를 삭제하는 것 보다는 새롭게 테이블을 Reorg 하는 작업이 더 빠르지만,

이미 오래된 데이터를 delete 로 삭제하신 것 같네요...^^

 

먼저 확인해야 할 사항은

Init.ora 파라미터인 'Compatible' 값이 10.0 이상이여야 하며,

Shrinking 하려는 대상 Segment 는 ASSM(Auto Segment Space Managed) Tablespace 내에

존재해야 합니다.

 

실제 실행 방법은

1. 테이블의 row movement 기능을 활성화

 SQL> ALTER TABLE scott.emp ENABLE ROW MOVEMENT;

2. 테이블과 HWM 를 shrink

 SQL> ALTER TABLE scott.emp SHRINK SPACE;

 

cf) 테이블 및 관련된 인덱스를 모두 shrink

 SQL > ALTER TABLE scott.emp SHRINK SPACE CASCADE;

 

Online Segment Shrink 적용 대상 세그먼트는

Normal Table, Index, Lob, IOT, MView 이며,

Segment Shrink 할 때의 Online 처리는 DML-Shared Lock 을 사용하기 때문에

Shrink 를 처리하는 동안에도 DML 작업이 가능하지만, parallel DML 은 수행될 수 없습니다.

또한, space-relase/HWM 조정을 하는 단계에서는 exclusive 모드로 lock 이 걸립니다.

하지만, 이 단계는 매우 짧은 시간이 소요되므로, 객체에 대한 가용성에 미치는 영향은 최소화 됩니다.

 

기타 자세한 사항이나 제약 사항들은 관련 메뉴얼을 참고하세요...



출처 : http://www.dbguide.net/dbqa/dbqa111003.jsp?catenum=27&page=1&idx=8574
반응형

+ Recent posts