오라클 8.1 이상에는 MOVE TABLESPACE 명령어로 TABLESPACE 변경이 가능하다
또한 MOVE TABLESPACE 시 REORRG 를 하는 효과도 있다.
그래서 대상 테이블이 fragmentaion 이 많이 일어났을 경우 SIZE 가 줄어들게 된다.

1. TABLE

aler table 테이블명 move tabledpace 테이블스페이스명;

2. INDEX
alter index 인덱스명 rebuild tabledpace 테이블스페이스명;
 
일괄 작업시 아래의 스크립트를 돌리도록 하자.
 
select 'alter table ' || segment_name || ' move tablespace ' || tablespace_name from user_segments;
 
 
SQL> select segment_name, owner, tablespace_name, bytes/1024/1024 from dba_segments where owner='CBADM';
 
SEGMENT_NAME                   OWNER                          TABLESPACE_NAME                BYTES/1024/1024
------------------------------ ------------------------------ ------------------------------ -------------------------------------------
TB_SB_DEL_CUST_20080506        CBADM                          TBS01                               700.671875
 
 
SQL>ALTER   TABLE  CBADM.TB_SB_DEL_CUST_20080506   MOVE   TABLESPACE  TBS01  ;
 
 
SQL> select segment_name, owner, tablespace_name, bytes/1024/1024 from dba_segments where owner='CBADM';
 
SEGMENT_NAME                   OWNER                          TABLESPACE_NAME                BYTES/1024/1024
------------------------------ ------------------------------ ------------------------------ -------------------------------------------
TB_SB_DEL_CUST_20080506        CBADM                          TBS01                               448.671875
  dbtown-rchwin.jpg
 이 글의 권한은 dbtown.net 에 있습니다.
자료를 스크랩하실땐 출처를 밝혀주세요 ^^