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 |
댓글