본문 바로가기
DB

Global Temporary 테이블

by ez.pang 2022. 9. 19.

Global Temporary Table (전역 임시 테이블)

- Session(또는 Transaction) 레벨의 임시 데이터를 저장하는 용도

더보기

Transaction

  • 더 이상 분할 할 수 없는 최소 수행단위
  • 어떤 기능 한 가지를 수행하는 SQL문의 덩어리
  • 한 개 이상의 데이터 조작 명령어(DML)로 이루어짐
  • 트랜잭션이 종료되기 전까지 여러 SQL문을 실행하고, 트랜잭션을 제어하는 명령(TCL)을 실행할 때 기존 트랜잭션이 끝난뒤에 새로운 트랜잭션이 시작된다.

[ SQL의 종류
  1. DDL(Data Detinition Language, 데이터 정의) : CREATE, DROP, ALTER, TRUNCATE
  2. DML(Data Manipulation Language, 데이터 조작): SELECT, INSERT, UPDATE, DELETE
  3. DCL(Data Control Language, 데이터 제어): GRANT, REVOKE]

[ TCL(Transaction Control Language)

트랜잭션을 제어하기 위해 사용하는 명령어(COMMIT, ROLLBACK)

트랜잭션에 묶여있는 DML의 수행상태는 모든 명령어가 정상적으로 수행완료된 상태, 모든 명령어가 수행되지않아 취소된 상태 두가지로만 존재가능]

더보기

Session

  • 어떤 활동을 위한 시간이나 기간
  • 세션이 여러개 = DB에 접속하여 사용 중인 connection이 여러개
  • 세션 > 트랜잭션 (세션이 유지되는 동안 TCL이 여러번 작동)

- Session (또는 Transaction) 레벨의 임시 데이터를 저장하기 때문에 RAC 시스템에서 글로벌 동기화 불필요
(session 데이터 간 경합이 발생하지 않기 때문에 DML lock 불필요)

더보기

RAC(Real Application Clusters)

  • 여러개의 Instance가 하나의 DataBase를 엑세스 할 수 있는 구조
    (application에서 접속할 수 있는 통로가 여러개이고 DataBase는 하나)

[Cluster
두개 이상의 독립된 서버들과 Disk를 하나로 연결하는 기법
Cluster로 구성된 서버들 중 어느 서버에 접속해도 동일한 Disk를 엑세스하게 되므로 하나의 서버 또는 하나의 Disk에 연결된 것 처럼 인식]

 - 테이블 정의는 모든 세션에서 볼 수 없음

(data는 세션별로 독립적, 특정 세션 임시 테이블 data는 다른 세션에서 접근불가)

- Data 유지기간

    1. ON COMMIT PRESERVE ROWS : 세션단위, 다른 세션에서 접근불가, 세션 종료 시 사라짐

    2. ON COMMIT DELETE ROWS : 트랜잭션단위, commit 되는 시점에 자동으로 사라짐

 

- 오라클에서는 테이블은 영구적으로 유지된다. 데이터만 지워짐

'DB' 카테고리의 다른 글

Oracle 반올림, 올림, 버림  (0) 2023.10.17
오라클 select ... for update  (0) 2022.09.26
ANSI SQL이란?  (0) 2022.09.19
Sub Query와 Inline View  (0) 2022.09.18

댓글