본문 바로가기

프로그램/oracle

[ORACLE]오라클 temporary 테이블

반응형

오라클 temporary 테이블

 


자세한 설명은 아래의 사이트를 참고했다.

http://devworks.tistory.com/9

 


TEMP 테이블

l  해당 세션이나 트랜잭션 에서만 볼 수 있음

l  Global Temp Table 은 모든 세션

l  Local Temp Table 은 생성한 세션이 종료되면 끝

l  1차로 정렬공간내(메모리인듯)에 생성되며 모자라면 임시테이블스페이스에 생성

l  Temp Table에 대한 인덱스와 Temp Table 의 수명주기는 일치하는 듯

l  뷰 안에서 사용은 가능, 다만 조인은 불가, 트리거 정의 가능

l  Create Global Temporary Table as Select 가능

l  On Commit Delete Rows 는 트랜잭션 내에서만 가능(기본값)

커밋을 수행 시 데이터가 사라짐

l  On Commit Preserve Rows 은 전체 세션에서 볼 수 있음

l  Dba_Tables 에서 조회 가능, Duration 컬럼을 통해 세션유지 정보 확인 가능

 

 

실제로 검증을 위해 800건 정도를 임시테이블에 넣고 써보니 속도가 아주 빠르고 좋았다.

 

Insert시 속도문제가 있어서 이건 모 UNION ALL 이용하는 방법을 사용했다.

 

토드의 IMPORT 메뉴에서 사용이 가능한지는 확인을 못해봤다.


문법


create global temporary table ins_test_t(

    tmp_01 varchar2(10)

    , tmp_02 varchar2(10)

    , tmp_03 varchar2(40)

    , tmp_04 varchar2(5)

    , tmp_02 number

)

on commit delete rows


select * 

from ins_test_t


drop table ins_test_t


 

참고 URL

http://devworks.tistory.com/9

http://egloos.zum.com/iceken/v/3808926