CTAS
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 CTAS NOLOGGING 및 UNRECOVERABLE 사용방법[편집]
- Create Table As Select 의 약어
- 테이블을 SELECT 한후 테이블을 생성 하는 방법
notifications_active 오직 NOT NULL 제약사항 만 생성됨.
- 생성되지 않는 것들
- 일반/UNIQUE 인덱스
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- REF
- 제약조건을 추가하기 위해서는 CTAS 이후 ALTER TABLE ~ 구문으로 추가
1.1 CTAS Syntax[편집]
- 테이블 생성 및 입력 , 인덱스는 생성되지 않음. 제약사항 (PK / FK ) 생성되지 않음.
CREATE TABLE emp_backup
[tablespace T/S명] -- 생략가능
[ LOGGING | NOLOGGING ] -- 리두 로그 정보가 만들어지지 않도록 함. 아래 UN/RECOVERABLE 옵션과 동시에 사용할수 없음.
[ RECOVERABLE | UNRECOVERABLE ] -- 복구하지 않음을 명시함.
AS SELECT * FROM emp NOLOGGING;
- 데이터는 입력 하지 않고 테이블만 생성할경우
CREATE TABLE emp_backup
NOLOGGING
AS SELECT * FROM emp
WHERE 1=2 --
;
2 CTAS를 이용한 REORG 방법[편집]
1. Create a copy of the original table using CTAS.
SQL> create table new_table
as select * from old_table;
2.Drop the original table and all indexes/constraints
SQL> drop table emp cascade constraints;
3.Rename new table
SQL> alter table new_emp rename to old table name;
- 주의 사항) 테이블 Move시에 모든 rowid값이 변경되기 때문에 인덱스를 반드시 재생성 하거나 리빌드 해야한다.