29
오오오 오오오오오오 오오 오오

오라클 데이터베이스 성능 튜닝

  • Upload
    giona

  • View
    100

  • Download
    1

Embed Size (px)

DESCRIPTION

오라클 데이터베이스 성능 튜닝. 성능 저하의 원인이 되는 기업의 문제점. 성능 저하의 원인이 되는 기업의 문제점. 운영 혹은 개발 인력의 RDBMS 에 대한 이해도 부족 짧은 개발기간과 적은 비용 산정으로 품질저하 DA(Data Architecture) 의 중요성에 대한 인식 부족 DB 전문인력 부족 충분한 테스트 부족. 좋은 성능을 위한 요소. 좋은 성능을 위한 요소. DA 설계에 대한 중요성 인식 필요 RDBMS 대한 깊은 이해 충분한 테스트 수행 분석적 자료에 대한 정량화 작업 - PowerPoint PPT Presentation

Citation preview

Page 1: 오라클 데이터베이스  성능 튜닝

오라클 데이터베이스 성능 튜닝

오라클 데이터베이스 성능 튜닝

Page 2: 오라클 데이터베이스  성능 튜닝

2

성능 저하의 원인이 되는 기업의 문제점성능 저하의 원인이 되는 기업의 문제점

성능 저하의 원인이 되는 기업의 문제점

□ 운영 혹은 개발 인력의 RDBMS 에 대한 이해도 부족

□ 짧은 개발기간과 적은 비용 산정으로 품질저하

□ DA(Data Architecture) 의 중요성에 대한 인식 부족

□ DB 전문인력 부족

□ 충분한 테스트 부족

Page 3: 오라클 데이터베이스  성능 튜닝

3

좋은 성능을 위한 요소좋은 성능을 위한 요소

좋은 성능을 위한 요소

□ DA 설계에 대한 중요성 인식 필요

□ RDBMS 대한 깊은 이해

□ 충분한 테스트 수행

□ 분석적 자료에 대한 정량화 작업

□ 품질을 위한 투자

Page 4: 오라클 데이터베이스  성능 튜닝

4

튜닝이란튜닝이란

튜닝이랑

□ 사전적 의미

자동차나 오디오 따위의 일부분을 개조하는 일

악기의 음을 표준음에 맞추기 위한 조율

□ IT 적 의미

성능개선

Page 5: 오라클 데이터베이스  성능 튜닝

5

튜닝 진행시 정해야 할 부분튜닝 진행시 정해야 할 부분

튜닝 진행시 정해야 할 부분

□ 누가 튜닝을 수행할 것인가

□ 무엇을 튜닝할 것인가

□ 어떻게 튜닝을 할 것인가

Page 6: 오라클 데이터베이스  성능 튜닝

6

튜닝 방법론튜닝 방법론

튜닝 방법론

1. 고객 Interview( 문제점 도출 )

2. 자료 수집 및 분석 ( 문제점 확인 )

3. Solution 도출

4. Solution 테스트 수행

5. 테스트 결과 분석

6. 완료 혹은 2 번에서 다시 시작

Page 7: 오라클 데이터베이스  성능 튜닝

7

누가 튜닝을 수행할 것인가 ?누가 튜닝을 수행할 것인가 ?

누가 튜닝을 수행할 것인가

□ Data Architecter

□ DBA

□ Application Architecter

□ Application Designer

□ Application Developer

□ System Administrator

□ Network Administrator

Page 8: 오라클 데이터베이스  성능 튜닝

8

무엇을 튜닝할 것인가무엇을 튜닝할 것인가

무엇을 튜닝할 것인가

□ 디자인 튜닝

Database 의 경우

논리적 , 물리적 Database 구조

DA 설계

테이블 레이아웃 , 인덱스 설계 등

Page 9: 오라클 데이터베이스  성능 튜닝

9

무엇을 튜닝할 것인가무엇을 튜닝할 것인가

무엇을 튜닝할 것인가

□ 디자인 튜닝

Application 의 경우

SQL 튜닝

코드의 최적화

프레임의 최적화

업무의 최적화

Page 10: 오라클 데이터베이스  성능 튜닝

10

무엇을 튜닝할 것인가무엇을 튜닝할 것인가

무엇을 튜닝할 것인가

□ 서버 튜닝

System 튜닝

Storage 튜닝

Network 튜닝

Middleware 튜닝

Database 튜닝

Page 11: 오라클 데이터베이스  성능 튜닝

11

무엇을 튜닝할 것인가무엇을 튜닝할 것인가

잠재성능 영향도

분석 및 설계분석 및 설계

애플리케이션 튜닝 애플리케이션 튜닝 (( 로직로직 , , SQL)SQL)

신규 신규 H/W H/W 구입구입

DB DB 서버 튜닝서버 튜닝

O/S O/S 튜닝튜닝

Page 12: 오라클 데이터베이스  성능 튜닝

12

무엇을 튜닝할 것인가무엇을 튜닝할 것인가

구간별 성능관리 주요 관점

F

LDEV

Switch Switch

DBMS

File System

Device File

SVR

SVR

SVR

C1C0 C2

SVR

SVR

SVR

Middle Ware

Cache

B

Array Group

S0

S1

S2

DB Server

Storage

Network

Application

Page 13: 오라클 데이터베이스  성능 튜닝

13

어떻게 튜닝을 할 것인가어떻게 튜닝을 할 것인가

어떻게 튜닝을 할 것인가

□ 무엇을 튜닝할 것인가의 대상에 따라 다른 Tool 을 사용하게 됨

Oracle Tool

Third Party Tool

Page 14: 오라클 데이터베이스  성능 튜닝

14

부하와 용량부하와 용량

부하와 용량

□ 부하와 용량 간의 관계 교통으로 비유하자면

차선이 넓고 차량의 속도가 빠르면 사고 피해의 심각성은 커진다

차선이 넓고 차량의 속도가 빠르면 사고는 복구하기 어렵고 또한 심각한 정체를 유발한다 .

그리고 차선이 넓고 차량의 속도가 빠르면 ( 대용량 시스템 ) 사전에 위험에 대한

철저한 대비만이 사고의 피해를 줄일 수 있다

Page 15: 오라클 데이터베이스  성능 튜닝

15

부하와 용량부하와 용량

부하와 용량

□ 부하와 용량이란

부하 : 차량의 수 , 용량 : 차선의 수

□ 현재의 상황

10 개의 차선에서 10 대의 차가 동시에 100km/h 로 달릴 수 있다 .

□ 고속도로의 작은 정체가 극심한 정체를 발생함

Page 16: 오라클 데이터베이스  성능 튜닝

16

부하와 용량부하와 용량

부하와 용량

□ 부하와 용량관계

가장 좁은 곳이 전체의 용량을 결정하게 된다 .

WE

B

WA

S

DB Storag

e

Netwo

rk

Page 17: 오라클 데이터베이스  성능 튜닝

17

Oracle Database StructuresOracle Database Structures

Storage structures

Memory structures

Process structures

Instance

System Global Area (SGA)

Background processes

Database files

Page 18: 오라클 데이터베이스  성능 튜닝

18

Oracle Memory StructuresOracle Memory Structures

Java poolDatabase

buffer cacheRedo log buffer

Shared pool Large pool

SGA

Streams pool

ServerProcess 1

PGAServer

Process 2PGA

Backgroundprocess

PGA

Page 19: 오라클 데이터베이스  성능 튜닝

19

Oracle InstanceOracle Instance

SystemMonitor(SMON)

DatabaseWriter(DBWn)

LogWriter(LGWR)

ProcessMonitor(PMON)

Archiver(ARCn)

SGA

Java pool

Shared pool Large poolStreams pool

Databasebuffer cache

Redo log buffer

Checkpoint(CKPT)

Controlfiles

Datafiles

Redo logfiles

Archive log files

Page 20: 오라클 데이터베이스  성능 튜닝

20

Oracle Server Process 와 Database Buffer CacheOracle Server Process 와 Database Buffer Cache

DBWn

Serverprocess

SGA

Databasebuffer cache

Data files

Page 21: 오라클 데이터베이스  성능 튜닝

21

Oracle Physical Database StructureOracle Physical Database Structure

Online redo log files

Password file

Parameter file

Archive log files

Control files

Data files

Alert and trace log files

Backup files

Page 22: 오라클 데이터베이스  성능 튜닝

22

Tablespace and Data FilesTablespace and Data Files

USERS tablespace

Data file 1

Data file 2

Page 23: 오라클 데이터베이스  성능 튜닝

23

Segment, Extent, BlockSegment, Extent, Block

Segment Extents Data blocks

Disk blocks

Page 24: 오라클 데이터베이스  성능 튜닝

24

Logical 과 Physical 구조의 관계Logical 과 Physical 구조의 관계

Database

Logical Physical

Tablespace Data file

OS block

Segment

Extent

Oracle datablock

Schema

Page 25: 오라클 데이터베이스  성능 튜닝

25

Oracle Database startup 과정Oracle Database startup 과정

OPEN

MOUNT

NOMOUNT

SHUTDOWN

Instance started

STARTUP

Control file opened for this instance

All files opened as described by the control file for this instance

Page 26: 오라클 데이터베이스  성능 튜닝

26

SQL 문장 수행 과정SQL 문장 수행 과정

SQL 문장 수행 과정

CloseOpen

FetchBindParse Execute

Page 27: 오라클 데이터베이스  성능 튜닝

27

SQL 문장 수행 과정SQL 문장 수행 과정

Parse

□ Parse 작업 내용

Shared Pool 에서 해당 SQL 문장을 검색함

SQL 문법에 대한 적합성을 확인함

접근하는 Object 에 대한 권한 정보를 확인함

View, Sub-Query 에 대한 Merge 작업을 수행함

실행계획을 확정함

□ Parsing 은 가능한 피하라 !!!

(Parse 는 CPU Resource 소모가 크고 , 추가적인 Memory 를 사용하는 resource-intensive 한

작업임 )

Page 28: 오라클 데이터베이스  성능 튜닝

28

SQL 문장 수행 과정SQL 문장 수행 과정

Parse 종류

□ Hard Parsing

유저가 SQL 문장 수행을 요청함

개별 세션이 사용하는 메모리와 , DB 서버의 메모리에서 같은 SQL 문장의 정보를 찾지 못함

Parse 작업 수행

□ Soft Parsing

유저가 SQL 문장 수행을 요청함

동일 SQL 에 대한 Parsing 작업 내용이 이미 DB 서버의 메모리에 존재하여 재사용함

재사용을 하지만 여전히 일부 Resource 에 대한 사용이 수반됨

※ Parsing 을 피하기 위해서 가급적 Bind 변수를 사용하고 SQL 사용 규칙을

준수할 것

Page 29: 오라클 데이터베이스  성능 튜닝

29

SQL 문장 수행 과정SQL 문장 수행 과정

Fetch

□ Fetch 작업 내용

Execute 단계에서 생성한 data 를 유저에게 전달함

지정된 array size 만큼의 Row 단위로 유저에게 전달함