메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

CTAS

DB CAFE
Dbcafe (토론 | 기여)님의 2024년 9월 30일 (월) 00:34 판 (새 문서: === CTAS NOLOGGING 및 UNRECOVERABLE 사용방법 === * Create Table As Select 의 약어 * 테이블을 SELECT 한후 테이블을 생성 하는 방법 {{틀:고지상자2 |제목= 오직 NOT NULL 제약사항 만 생성됨. |내용=* 생성되지 않는 것들 *:# 일반/UNIQUE 인덱스 *:# PRIMARY KEY *:# FOREIGN KEY *:# CHECK *:# REF * 제약조건을 추가하기 위해서는 CTAS 이후 ALTER TABLE ~ 구문으로 추가 }} * 인덱스는 생성되지 않음. 테이블...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

CTAS NOLOGGING 및 UNRECOVERABLE 사용방법

  • Create Table As Select 의 약어
  • 테이블을 SELECT 한후 테이블을 생성 하는 방법

틀:고지상자2

  • 인덱스는 생성되지 않음. 테이블 관련된 모든 인덱스(PK / UK / FK ) 생성되지 않음.

CTAS Syntax

CREATE TABLE emp_backup 
             [ TABLESPACE T/S명 ] -- 테이블 스페이스 지정시  
             [ LOGGING     | NOLOGGING ]     -- 리두 로그 정보가 만들어지지 않도록 함. 아래 UN/RECOVERABLE 옵션과 동시에 사용할수 없음.
             [ RECOVERABLE | UNRECOVERABLE ]  -- 복구하지 않음을 명시함. 
             [ COMPRESS ]
             [ PARALLEL 갯수 ]
    AS SELECT * FROM emp;
  • 데이터는 입력 하지 않고 테이블만 생성할경우
CREATE TABLE emp_backup 
       NOLOGGING
    AS SELECT * FROM emp
 WHERE 1=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값이 변경되기 때문에 인덱스를 반드시 재생성 하거나 리빌드 해야한다.