ORACLE/ADMIN2009. 11. 6. 10:36
반응형

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 함께 사용할 때만 가능

반응형
Posted by [PineTree]