전역 임시 테이블(temporary table)
2010. 1. 29. 11:10ㆍOracle/Oracle Study
반응형
[참고문헌 : export one-on-one ORACLE]
* 전역 임시 테이블
임시테이블을 생성하는 동작은 공간 할당까지 포함하지 않으며, 다른 종류의 테이블들과는 다르게 initial 익스텐트가 할당되지 않는다. 런타임에 세션이 처음으로 임시 테이블에 데이터를 삽입하면 그 세션을 위한 임시 세그먼트가 생설될 것이다.
각 세션은 자신만의 임시 세그먼트(존재하는 세그먼트의 익스텐트가 아니다)를 가지기 때문에 모든 사용자들은 임시 테이블을 위한 공간을 서로 다른 테이블 영역에서 할당할 수 있을 것이다.
*임시 테이블은 트리거, 체크 제약조건, 인덱스 등과 같은 영구 테이블의 많은 속성들을 갈질 수 있다.
임시 테이블에서 지원되지 않는 영구 테이블의 특성은 다음과 같다.
1. 참조 무결성 제약조건을 가질 수 없다. 임시 테이블들은 외래 키의 대상이 될 수 없고, 임시 테이블에 대해 선언된 외래 키를 가질 수도 없다.
2 .VARRAY 혹은 NESTED TABLE 유형의 열을 가질 수 없다.
3. 인덱스 구조 테이블이 될 수 없다.
4. 인덱스나 해시 클러스터 안에 있을 수 없다.
5. 분할될 수 없다.
6. ANAYLYZE 명령어를 통해 생성된 통계 정보를 가질 수 없다.
SQL> create global temporary table temp_table_session
2 on commit preserve rows
3 as select * from dept where 1=2;
Table created.
SQL> create global temporary table temp_table_transaction
2 on commit delete rows
3 as
4 select * from dept where 1=2;
Table created.
SQL> create global temporary table temp_table_default -- 아무것도 지정하지 않음.
2 as select * from dept where 1=2;
Table created.
SQL> insert into temp_table_session values(70,'SCOTT','TIGER');
1 row created.
SQL> insert into temp_table_transaction values(70,'SCOTT','TIGER');
1 row created.
SQL> insert into temp_table_default values(70,'SCOTT','TIGER');
1 row created.
SQL> select session_cnt, transaction, default_cnt
2 from (select count(*) session_cnt from temp_table_session) a,
3 (select count(*) transaction from temp_table_transaction) b,
4 (select count(*) default_cnt from temp_table_default) c
5 /
SESSION_CNT TRANSACTION DEFAULT_CNT
-------------- -------------- -------------
1 1 1
SQL> commit;
Commit complete.
SQL> select session_cnt, transaction, default_cnt
2 from (select count(*) session_cnt from temp_table_session) a,
3 (select count(*) transaction from temp_table_transaction) b,
4 (select count(*) default_cnt from temp_table_default) c
5 /
SESSION_CNT TRANSACTION DEFAULT_CNT
-------------- -------------- --------------
1 0 0
SQL>
나의 의견 :
아무것도 지정해 주지 않은 것은 transaction 설정을 default로 가지고 있는가가 저는 궁금합니다.
위 테스트의 결과를 보면 default 값으로 가지고 있지 않나 하는 생각이 듭니다.
반응형
'Oracle > Oracle Study' 카테고리의 다른 글
set echo on & set feedback off (0) | 2010.02.16 |
---|---|
Data Dictionary (0) | 2010.02.02 |
alert file 에서 error 개수 확인 방법 (0) | 2010.01.14 |
number(p,s) : precision, scale ora-01438 (0) | 2009.12.10 |
Oracle Default DB 내 맘대로 바꾸기. (0) | 2009.11.19 |