[오라클]Create Table As Select(CTAS)
1. CTAS시 가져오지 않는 항목들
---------------------
- DEFAULT
- CONSTRAINT(PK, FK, CHECK)
- INDEX
- Grant
- Synonym
- TRIGGER
*. column name, type, length, not null은 가져옴.
2. 8.1.6 미만 버전
---------------------
- 대량의 테이블을 SORT해서 넣을 경우 (group by를 이용)
SQL> CREATE TABLE 복사테이블
UNRECOVERABLE
PARALLEL
TABLESPACE 테이블스페이스
AS
SELECT 컬럼1, 컬럼2, MIN(컬럼3), ...MIN(컬럼n)
FROM 테이블
GROUP BY 컬럼1, 컬럼2; <= 컬럼1, 컬럼2는 PK임.
3. 8.1.6 이상 버전
---------------------
- 대량의 테이블을 SORT해서 넣을 경우 (order by를 지원)
SQL> ALTER SESSION ENABLE PARALLEL DDL;
SQL> ALTER SESSION ENABLE PARALLEL DML;
SQL> ALTER SESSION SET HASH_AREA_SIZE=838860800; -- SORT_AREA_SIZE * 2
SQL> ALTER SESSION SET SORT_AREA_SIZE=419430400;
SQL> ALTER SESSION SET SORT_AREA_RETAINED_SIZE=419430400;
SQL> ALTER SESSION SET DB_FILE_MULTIBLOCK_READ_COUNT=256;
SQL> CREATE TABLE 복사테이블
[ UNRECOVERABLE ]
PARALLEL NOLOGGING
TABLESPACE 테이블스페이스
AS
SELECT /*+ PARALLEL(A,16) */ *
FROM 테이블 A
ORDER BY ... ;
4. [UN]RECOVERABLE 제한사항
- 파티션이나 LOB 테이블은 사용 불가
- UNRECOVERABLE은 subquery 함께 사용할 때만 가능
'01.오라클 > 007.DB Knowledge Base' 카테고리의 다른 글
[DB튜닝]개발자를 위한 튜닝 가이드 - 쿼리 디자인 (0) | 2012.12.19 |
---|---|
[오라클]성능 향상을 위한 파티션 테이블 사용은 필수!!! (0) | 2012.12.19 |
[오라클]파티션 인덱스 상태 변경 (0) | 2012.12.19 |
[오라클]파티션 로컬 인덱스 생성방법 (0) | 2012.12.19 |
[오라클]Delete와 Truncate 비교 (0) | 2012.12.19 |