전문가를 위한 오라클 데이터베이스 아키텍처 (2014년)
임시 테이블 0 0 83,406

by 구루비스터디 테이블 table 임시 테이블 temporary table [2018.09.27]


임시 테이블

  • 임시 테이블(temporary table)은 트랜잭션 또는 세션의 내부적인 중간 결과 집합을 저장하는 데 사용된다.
  • 임시 테이블의 데이터는 수행 중인 현재 세션에서만 볼 수 있으며 다른 세션의 데이터는 결코 볼 수 없다.
  • 심지어 현재 세션이 데이터 COMMIT을 수행했을지라도 볼 수 없다.
  • 동시에 많은 사용자가 사용하더라도 임시 태이블에 미치는 영향이 없다.
  • 특정 세션이 다른 세션의 임시 태이블 데이터의 사용을 방해할 수 없다.
  • 만약 임시 테이블에 lock 을 건다 하더라도, 다른 세션이 생성한 임시 테이블의 사용을 막을 수는 없다.


  • 임시 태이블은 사용자의 임시 테이블스페이스(temporary tablespace) 에 저장공간을 할당한다.
  • 임시 테이블에 처음으로 데이터가 삽입될 때 비로소 해당 세션에 임시 세그먼트를 생성한다.
  • 오라클의 임시 태이블이 다른 DB의 임시 테이블과 중요한 차이는 고정된 객체로 미리 생성해 놓는다는 것이다.
    • 다른 뷰나, 프로시져에서 참조 할 수 있다는 의미.




-- 세션기반 임시테이블
CREATE GLOBAL TEMPLORARY TABLE temp_table_session
ON COMMIT PRESERVE ROWS
AS
SELECT * FROM emp WHERE 1=2;
;

-- 트랜잭션 기반 임시테이블
CREATE GLOBAL TEMPLORARY TABLE temp_table_transaction
ON COMMIT DELETE ROWS
AS
SELECT * FROM emp WHERE 1=2;
;


"데이터베이스 스터디모임" 에서 2014년에 "전문가를 위한 오라클 데이터베이스 아키텍처 " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4039

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입