DATOR


유용한 SQL문(SET UNUSED)

데이터 이행을 하다 보면 단위/통합 테스트의 단계가 있다.
해당 단계에서 개발자들에 의해서 급하게 속성을 안사용하니까
제거 해달라고 요청하는 경우가 있다.

 

데이터가 작으면 DROP COLUMN으로 해서 제거 할수 있지만
수억건의 데이터가 있는 경우에는 해당 작업에 의해서
개발자 테스트가 지연 될수도 있다.

 

그것을 해결할수 있는 방안이 나왔다.

오라클 8i부터 사용되지 않는 컬럼에 대해 사용하지 않겠다고 마스킹할 수 있으며(unused)
이럴 경우 질의시 보이지 않는다.

실제 보이지만 않을 뿐이지 물리적인 부분은 그대로
있으므로 이 시점에서 사용된 공간이 반환되는 것은 아니다.

 

보통 컬럼의 DROP으로 부하가 많이 걸릴 수 있을때 UNUSED해서
저녁에 배치로 날리면 된다.

 

  

사용법

ALTER TABLE TABLE명 SET UNUSED(컬럼1,컬럼2);

 

저녁에 해당 딕셔너리를 조회 해서 한번에 처리하면 된다.

select * from ALL_unused_col_tabs;


사용법
alter table 테이블명 drop unused columns;

해당 테이블 공간 복귀된다.


주의 해야 할것은 상식적으로 생각하면 USED하면 살릴수 있을것 같은데
절대 복귀 안된다.괜히 주요 테이블 테스트 하다가 큰일 날수 있음.

 

Tag

Leave Comments