"CTAS"의 두 판 사이의 차이
DB CAFE
12번째 줄: | 12번째 줄: | ||
* 제약조건을 추가하기 위해서는 CTAS 이후 ALTER TABLE ~ 구문으로 추가 | * 제약조건을 추가하기 위해서는 CTAS 이후 ALTER TABLE ~ 구문으로 추가 | ||
}} | }} | ||
+ | * 인덱스는 생성되지 않음. 테이블 관련된 모든 인덱스(PK / UK / FK ) 생성되지 않음. | ||
==== CTAS Syntax ==== | ==== CTAS Syntax ==== | ||
− | + | ||
+ | |||
<source lang=sql> | <source lang=sql> | ||
CREATE TABLE emp_backup | CREATE TABLE emp_backup | ||
20번째 줄: | 22번째 줄: | ||
[ LOGGING | NOLOGGING ] -- 리두 로그 정보가 만들어지지 않도록 함. 아래 UN/RECOVERABLE 옵션과 동시에 사용할수 없음. | [ LOGGING | NOLOGGING ] -- 리두 로그 정보가 만들어지지 않도록 함. 아래 UN/RECOVERABLE 옵션과 동시에 사용할수 없음. | ||
[ RECOVERABLE | UNRECOVERABLE ] -- 복구하지 않음을 명시함. | [ RECOVERABLE | UNRECOVERABLE ] -- 복구하지 않음을 명시함. | ||
+ | [ COMPRESS ] | ||
+ | [ PARALLEL 갯수] | ||
AS SELECT * FROM emp NOLOGGING; | AS SELECT * FROM emp NOLOGGING; | ||
</source> | </source> |
2024년 6월 20일 (목) 00:47 판
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 ~ 구문으로 추가
- 인덱스는 생성되지 않음. 테이블 관련된 모든 인덱스(PK / UK / FK ) 생성되지 않음.
1.1 CTAS Syntax[편집]
CREATE TABLE emp_backup
[tablespace T/S명] -- 생략가능
[ LOGGING | NOLOGGING ] -- 리두 로그 정보가 만들어지지 않도록 함. 아래 UN/RECOVERABLE 옵션과 동시에 사용할수 없음.
[ RECOVERABLE | UNRECOVERABLE ] -- 복구하지 않음을 명시함.
[ COMPRESS ]
[ PARALLEL 갯수]
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값이 변경되기 때문에 인덱스를 반드시 재생성 하거나 리빌드 해야한다.