본문 바로가기

Oracle DB

아키텍처 기반 튜닝 원리

 

1. 데이터베이스 아키텍처

Oracle Database

Instance

SGA

Data Buffer Cache, Redo Log Buffer

Shared Area

Library Cache

Dictionary Cache

Java Pool, Large Pool

Background Process

PMON(프로세스), SMON(Ins 리커버리)

DBWR, LGWR

CKPT(체크포인트)

Database

Data Files Control Files Redo Log Files

 

 

1. 프로세스 – 백그라운드 프로세서

 

ORACLE

SQL SERVER

SMON

DATABASE CLEAN UP/

SHRINKING THREAD

PMON

OPEN DATA SERVICE

DBWR

LAZYWRITER THREAD

LGWR

LOG WRITER THREAD

CHECKPOINT

DATABASE CHECKPOINT THREAD

RECOVERER

DISTRIBUTED TRANSACTION

COORDINATOR (DTC)

 

 

2. 파일구조

 

- 데이터파일 : OS에서 보이면 PHYSICAL, 안보이면 LOGICAL

- 블록(페이지) : I/O의 기본 단위. 오라클은 다양함. SQL SERVER는 8K 단일

- 익스텐트 : 테이블 스페이스로부터 공간을 할당하는 단위. 오라클은 다양한 크기, SQL SERVER는 8개의 익스텐트 유지 (64K)

- 세그먼트 : 저장공간을 필요로 하는 데이터 오브젝트(테이블, 인덱스 등). 분산파일일 경우 속도가 향상되며 테이블 스페이스 내 다양한 파일에 나뉘어 저장가능

- 임시파일 : 대량의 정렬 또는 해쉬 작업 수행 중 메모리 공간이 부족할 경우 활용. 오라클은 별도의 임시 테이블 스페이스 지정가능. SQL SERVER는 단 하나의 TEMPDB 사용.

- 로그파일 : DB버퍼 캐시에 모든 변경사항을 기록. 로그는 APPEND 방식 (빠른 속도)

 

 

3. 메모리 구조

- 시스템 공유 메모리 영역: SHARED POOL, DB BUFFER CACHE, LOG BUFFER.

- 프로세스 전용 메모리 영역 : PGA

- ORACLE SGA = SQL SERVER MEMORY POOL

- ORACLE PGA = SQL SERVER는 THREAD기반 존재 X 여기에선 데이터 정렬, 해쉬 관련 작업, 세션과 커서 관련 상태정보 저장한다. ORACLE은 PROCESS 기반이다.

- DB BUFFER CACHE : FREE / DIRTY / PINED BUFFER로 상태별로 나뉘며 LRU와 MRU방식을 통해서 관리를 함

- SHARED POOL : DICTIONARY / LIBRARY CACHE로 이루어짐

- LOG BUFFER : WRITE AHEAD LOGGING방식으로 DB에 기록하기전 LOG BUFFER 기록.

 

'Oracle DB' 카테고리의 다른 글

옵티마이저 원리  (0) 2021.04.03
튜닝 기본 원칙  (0) 2021.04.03
네트워크에서의 대기 이벤트들  (0) 2021.04.03
리두(Redo)에서의 대기 이벤트들  (0) 2021.04.02
I/O에서의 대기 이벤트들  (0) 2021.04.02