오라클 대용량 테이블에서 사용하지 않는 컬럼 DROP 하기
1. SET UNUSED 구문으로 사용하지 않음으로 MARK 하기
2. DROP UNUSED 구문으로 삭제하기
예제
UNUSED 가 잘되어있는지 확인해보자
UNUSED 로 MARK 된 컬럼은 테이블을 조회해도 나오지 않고, 딕셔너리에서도 제외된다.
해당컬럼을 DROP 시 많은양의 UNDO 가 발생되는것을 막기 위해 CHECKPOINT 구문으로 DROP하자.
-- script
DROP TABLE UNUSED_TEST PURGE;
CREATE TABLE UNUSED_TEST (A INT, B CHAR(1));
INSERT INTO UNUSED_TEST(A,B) VALUES(1,'A');
COMMIT;
ALTER TABLE UNUSED_TEST SET UNUSED COLUMN B;
SELECT * FROM DBA_UNUSED_COL_TABS;
SELECT * FROM UNUSED_TEST;
SELECT OWNER, TABLE_NAME, COLUMN_NAME
FROM DBA_TAB_COLUMNS
WHERE TABLE_NAME='UNUSED_TEST' AND OWNER='ORAUSER';
ALTER TABLE UNUSED_TEST DROP UNUSED COLUMN CHECKPOINT 100;
반응형
'생계 > Oracle' 카테고리의 다른 글
[oracle] 히든 파라미터 체크 hidden parameter (0) | 2023.07.03 |
---|---|
oracle audit 파일 삭제 (0) | 2023.05.29 |
리눅스 오라클 hugepage 설정 (0) | 2023.05.03 |
[oracle] 현재 접속 스키마 변경 current_schema (0) | 2023.03.29 |
RMAN CATALOG DB 쓰는 이유 (0) | 2023.02.28 |