본문 바로가기
Database

[24/365] Oracle DB 논리적 구조

by BTC_김태훈 2022. 5. 9.

안녕하세요, BTC 24/365팀입니다.

이번 포스팅에서는 Oracle DB의 논리적 구조에 대해 알아보도록 하겠습니다.

 

 

이전 게시글 https://btcd.tistory.com/122?category=927631 

 

[Oracle] 논리적 물리적 구조

안녕하세요, BTC 24/365팀입니다. 이번 포스팅에서는 Oracle DB의 논리적 물리적 구조에 대해 알아보도록 하겠습니다. 1. Oracle DB 논리적 물리적 저장구조 2. Tablespace 3. Segment 4. Extent 5. Block 1. Ora..

btcd.tistory.com

 


 

1. Oracle DB 논리적 구조

2. HWM

3. Delete, Truncate, Drop

4. Shrink

 


1. Oracle DB 논리적 구조

- Table Sapce는 여러개의 Segment들의 집합

- Segment는 Data Segment, Index Segment, Temporary Segment, Undo Segment 종류로
  나눠지며, 아래의 Segment는 Data Segment에 해당한다.

- Extent는 하나이상의 연속된 데이터 블록들이 모여 구성된다.

- Data Block은 DB에 데이터가 저장되는 가장 작은 단위이다.

 

2. HWM (High Water Mark)

- HWM이란 고수위라고도 하며, 이것은 테이블의 데이터가 어디까지 들어있다는 것을 가리키는
  일종의 포인터이고, 자동적으로 HWM의 뒤는 데이터가 들어있지 않은 공간이라는 것이 확인된다.

- 테이블을 읽는다는 것은 해당 테이블의 처음부터 HWM이 위치한 곳까지 읽는 것을 의미

- Block들이 모여있는 한줄이 Segment에 할당된 영역, 각각의 블록은 Data Block,
  5개의 Block이 하나의 Extent

- HWM 이전 블록에만 저장가능

- Full Scan 수행 시, HWM 앞의 모든 데이터 블록 접근

- Data가 적은데 풀 스캔 시간이 오래 걸리면 세그먼트 축소 필요

 

3. Delete / Truncate / Drop

■ Delete 

- 데이터만 삭제 되며 테이블 용량은 줄어들지 않는다.

- 한 행씩 삭제하기 때문에 행이 많으면 System 자원을 많이 소모한다.

- Commit 이전에는 Rollback이 가능하다.

- 롤백정보를 기록하므로 Truncate에 비해서 느리다.

- 전체 또는 일부 데이터만 삭제가 가능하며 삭제 후 행수를 반환한다.

- Delete 후에는 HWM이 줄어들지 않는다.

 

■ Truncate

- 테이블을 최초 생성된 초기상태로 만든다.

- 용량이 줄어들고 인덱스 등 모두 삭제된다.

- Rollback이 불가능하다.

- 전체 삭제만 가능하며 삭제 후 행수를 반환하지 않는다.

- HWM이 최초 할당된 영역을 남기고 모두 할당해제된다.

 

■ Drop

- 기존 테이블의 존재를 없앤다.(테이블의 정의 자체를 완전히 없앤다.)

- Rollback이 불가능하다.

- HWM이 모두 할당해제된다.

4. Shrink

- DB를 사용하다보면 DML 작업이 한 테이블에서 많이 일어나게 되면 HWM는 이전에 데이터가
  가장 많았던 시점의 HWM을 표시하고 있지만 실제로 사용하는 블록은 HWM까지 미치지 못한다.

- 위 같은 상황으로 테이블의 크기도 불필요하게 커질 뿐 아니라 Full Scan시 데이터 스캔의
  범위기준이 HWM이기 때문에 스캔시 불필요한 I/O가 발생된다.

- 위 문제를 해결해주기 위한 방법으로 Shrink 기능이 생겨남.

 

 

 

 

 

 

 

 

'Database' 카테고리의 다른 글

이상 현상(Anomaly)이란?  (0) 2022.05.13
[24/365] LRU 알고리즘이란...?  (0) 2022.05.13
E-R 다이어그램  (0) 2022.05.04
[24/365] 논리적 물리적 구조  (0) 2022.05.02
RDB에 대해서  (0) 2022.04.22

댓글