tablespace 사용에 있어서 관리 가 중요한데... tablespace 용량은 부족하나 더 이상 비용 및 table 사용문제로 추가가 불가능 할시... 다른 데이블 스페이스로 move 시키는 작업 을 수행합니다.... 우선 tablespace 용량을 확인 DBA_FREE_SPACE 와 DBA_SEGMENTS 를 이용해 보았습니다... sql> WITH A AS( TABLESPACE_NAME FREE_SPACE USE_SPACE FREERATE SHIN_DATA_05 8190 2831 74.322 SHIN_DATA_01 TABLESPACE는 약 7% 정도 밖에 남지 않았네요... SHIN_DATA_01 에 어떤 table이 있는지 사용량이 많은지를 확인해 보고 sql> SELECT OWNER,SEGMENT_NAME,SEGMENT_TYPE, OWNER SEGMENT_NAME SEGMENT_TYPE BYTES BYTE 용량으로 볼때는 다른tablespace 에는 어림도 없겠고.... 'chul' table을 'SHIN_DATA_05 ' tablespace로 move 시키는게 좋겠네요... sql> SELECT
OWNER,SEGMENT_NAME,PARTITION_NAME, OWNER SEGMENT_NAME PARTITION_NAME BYTES 이런 결과 로 나오네요 자 작업 move 작업 을 시작하면 ALTER TABLE CHUL MOVE PARTITION P_200907 TABLESPACE SHIN_DATA_05; ALTER INDEX CHUL_PK REBUILD PARTITION P_200907 TABLESPACE SHIN_DATA_05; tablespace move 시키는 작업은 index를 물고 있는 table일때에는 index를 Rebuild시켜야 하는데... Local index라 가정한 상태의 작업입니다... 물론 partition일때는 대부분 Local index이겠지만... 업무적 특성상이나..다른이유에서의 Global index 구성시에도 같이 Rebuild 해 주어야 합니다... 또한 실제 tablespace는 index와 table을 따로 구분하여 관리하는게 좋지만 예를 들어 위와 같이 작업 하였습니다... 어렵지 않지만 대부분 개발 엔지니어들이 권한 문제등으로 잘 사용해 보지 못한다기에 예를 들어 설명해 보았습니다^^ |