Upload
giona
View
100
Download
1
Embed Size (px)
DESCRIPTION
오라클 데이터베이스 성능 튜닝. 성능 저하의 원인이 되는 기업의 문제점. 성능 저하의 원인이 되는 기업의 문제점. 운영 혹은 개발 인력의 RDBMS 에 대한 이해도 부족 짧은 개발기간과 적은 비용 산정으로 품질저하 DA(Data Architecture) 의 중요성에 대한 인식 부족 DB 전문인력 부족 충분한 테스트 부족. 좋은 성능을 위한 요소. 좋은 성능을 위한 요소. DA 설계에 대한 중요성 인식 필요 RDBMS 대한 깊은 이해 충분한 테스트 수행 분석적 자료에 대한 정량화 작업 - PowerPoint PPT Presentation
Citation preview
오라클 데이터베이스 성능 튜닝
오라클 데이터베이스 성능 튜닝
2
성능 저하의 원인이 되는 기업의 문제점성능 저하의 원인이 되는 기업의 문제점
성능 저하의 원인이 되는 기업의 문제점
□ 운영 혹은 개발 인력의 RDBMS 에 대한 이해도 부족
□ 짧은 개발기간과 적은 비용 산정으로 품질저하
□ DA(Data Architecture) 의 중요성에 대한 인식 부족
□ DB 전문인력 부족
□ 충분한 테스트 부족
3
좋은 성능을 위한 요소좋은 성능을 위한 요소
좋은 성능을 위한 요소
□ DA 설계에 대한 중요성 인식 필요
□ RDBMS 대한 깊은 이해
□ 충분한 테스트 수행
□ 분석적 자료에 대한 정량화 작업
□ 품질을 위한 투자
4
튜닝이란튜닝이란
튜닝이랑
□ 사전적 의미
자동차나 오디오 따위의 일부분을 개조하는 일
악기의 음을 표준음에 맞추기 위한 조율
□ IT 적 의미
성능개선
5
튜닝 진행시 정해야 할 부분튜닝 진행시 정해야 할 부분
튜닝 진행시 정해야 할 부분
□ 누가 튜닝을 수행할 것인가
□ 무엇을 튜닝할 것인가
□ 어떻게 튜닝을 할 것인가
6
튜닝 방법론튜닝 방법론
튜닝 방법론
1. 고객 Interview( 문제점 도출 )
2. 자료 수집 및 분석 ( 문제점 확인 )
3. Solution 도출
4. Solution 테스트 수행
5. 테스트 결과 분석
6. 완료 혹은 2 번에서 다시 시작
7
누가 튜닝을 수행할 것인가 ?누가 튜닝을 수행할 것인가 ?
누가 튜닝을 수행할 것인가
□ Data Architecter
□ DBA
□ Application Architecter
□ Application Designer
□ Application Developer
□ System Administrator
□ Network Administrator
8
무엇을 튜닝할 것인가무엇을 튜닝할 것인가
무엇을 튜닝할 것인가
□ 디자인 튜닝
Database 의 경우
논리적 , 물리적 Database 구조
DA 설계
테이블 레이아웃 , 인덱스 설계 등
9
무엇을 튜닝할 것인가무엇을 튜닝할 것인가
무엇을 튜닝할 것인가
□ 디자인 튜닝
Application 의 경우
SQL 튜닝
코드의 최적화
프레임의 최적화
업무의 최적화
10
무엇을 튜닝할 것인가무엇을 튜닝할 것인가
무엇을 튜닝할 것인가
□ 서버 튜닝
System 튜닝
Storage 튜닝
Network 튜닝
Middleware 튜닝
Database 튜닝
11
무엇을 튜닝할 것인가무엇을 튜닝할 것인가
잠재성능 영향도
분석 및 설계분석 및 설계
애플리케이션 튜닝 애플리케이션 튜닝 (( 로직로직 , , SQL)SQL)
신규 신규 H/W H/W 구입구입
DB DB 서버 튜닝서버 튜닝
O/S O/S 튜닝튜닝
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
13
어떻게 튜닝을 할 것인가어떻게 튜닝을 할 것인가
어떻게 튜닝을 할 것인가
□ 무엇을 튜닝할 것인가의 대상에 따라 다른 Tool 을 사용하게 됨
Oracle Tool
Third Party Tool
14
부하와 용량부하와 용량
부하와 용량
□ 부하와 용량 간의 관계 교통으로 비유하자면
차선이 넓고 차량의 속도가 빠르면 사고 피해의 심각성은 커진다
차선이 넓고 차량의 속도가 빠르면 사고는 복구하기 어렵고 또한 심각한 정체를 유발한다 .
그리고 차선이 넓고 차량의 속도가 빠르면 ( 대용량 시스템 ) 사전에 위험에 대한
철저한 대비만이 사고의 피해를 줄일 수 있다
15
부하와 용량부하와 용량
부하와 용량
□ 부하와 용량이란
부하 : 차량의 수 , 용량 : 차선의 수
□ 현재의 상황
10 개의 차선에서 10 대의 차가 동시에 100km/h 로 달릴 수 있다 .
□ 고속도로의 작은 정체가 극심한 정체를 발생함
16
부하와 용량부하와 용량
부하와 용량
□ 부하와 용량관계
가장 좁은 곳이 전체의 용량을 결정하게 된다 .
WE
B
WA
S
DB Storag
e
Netwo
rk
17
Oracle Database StructuresOracle Database Structures
Storage structures
Memory structures
Process structures
Instance
System Global Area (SGA)
Background processes
Database files
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
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
20
Oracle Server Process 와 Database Buffer CacheOracle Server Process 와 Database Buffer Cache
DBWn
Serverprocess
SGA
Databasebuffer cache
Data files
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
22
Tablespace and Data FilesTablespace and Data Files
USERS tablespace
Data file 1
Data file 2
23
Segment, Extent, BlockSegment, Extent, Block
Segment Extents Data blocks
Disk blocks
24
Logical 과 Physical 구조의 관계Logical 과 Physical 구조의 관계
Database
Logical Physical
Tablespace Data file
OS block
Segment
Extent
Oracle datablock
Schema
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
26
SQL 문장 수행 과정SQL 문장 수행 과정
SQL 문장 수행 과정
CloseOpen
FetchBindParse Execute
27
SQL 문장 수행 과정SQL 문장 수행 과정
Parse
□ Parse 작업 내용
Shared Pool 에서 해당 SQL 문장을 검색함
SQL 문법에 대한 적합성을 확인함
접근하는 Object 에 대한 권한 정보를 확인함
View, Sub-Query 에 대한 Merge 작업을 수행함
실행계획을 확정함
□ Parsing 은 가능한 피하라 !!!
(Parse 는 CPU Resource 소모가 크고 , 추가적인 Memory 를 사용하는 resource-intensive 한
작업임 )
28
SQL 문장 수행 과정SQL 문장 수행 과정
Parse 종류
□ Hard Parsing
유저가 SQL 문장 수행을 요청함
개별 세션이 사용하는 메모리와 , DB 서버의 메모리에서 같은 SQL 문장의 정보를 찾지 못함
Parse 작업 수행
□ Soft Parsing
유저가 SQL 문장 수행을 요청함
동일 SQL 에 대한 Parsing 작업 내용이 이미 DB 서버의 메모리에 존재하여 재사용함
재사용을 하지만 여전히 일부 Resource 에 대한 사용이 수반됨
※ Parsing 을 피하기 위해서 가급적 Bind 변수를 사용하고 SQL 사용 규칙을
준수할 것
29
SQL 문장 수행 과정SQL 문장 수행 과정
Fetch
□ Fetch 작업 내용
Execute 단계에서 생성한 data 를 유저에게 전달함
지정된 array size 만큼의 Row 단위로 유저에게 전달함