| (같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
| 1번째 줄: | 1번째 줄: | ||
= Oracle Database | = Oracle Database 성능 튜닝 가이드 (19c) = | ||
== 주요 목록 구성 == | == 주요 목록 구성 == | ||
=== 성능 튜닝 개요 (Performance Tuning Overview) === | === 성능 튜닝 개요 (Performance Tuning Overview) === | ||
# 핵심 기능 | # 핵심 기능 : [[성능 문제 식별 방법론과 튜닝 접근법]] | ||
# 요점 | # 요점 : | ||
#: - 성능 문제의 근본 원인 분석 | #: - 성능 문제의 근본 원인 분석 | ||
#: - 시스템적 접근법 vs 개별 SQL 튜닝 | #: - 시스템적 접근법 vs 개별 SQL 튜닝 | ||
| 11번째 줄: | 11번째 줄: | ||
=== 자동 데이터베이스 진단 모니터 (ADDM) === | === 자동 데이터베이스 진단 모니터 (ADDM) === | ||
# 핵심 기능 | # 핵심 기능 : 자동화된 성능 분석 및 권고사항 제공 | ||
# 요점 | # 요점 : | ||
#: - AWR 스냅샷 기반 자동 분석 | #: - AWR 스냅샷 기반 자동 분석 | ||
#: - 성능 병목 지점 자동 식별 | #: - 성능 병목 지점 자동 식별 | ||
| 19번째 줄: | 19번째 줄: | ||
=== Automatic Workload Repository (AWR) === | === Automatic Workload Repository (AWR) === | ||
# 핵심 기능 | # 핵심 기능 : 성능 데이터 수집 및 보관 | ||
# 요점 | # 요점 : | ||
#: - 시스템 성능 통계 자동 수집 | #: - 시스템 성능 통계 자동 수집 | ||
#: - 스냅샷 간격 설정 (기본 1시간) | #: - 스냅샷 간격 설정 (기본 1시간) | ||
| 27번째 줄: | 27번째 줄: | ||
=== Active Session History (ASH) === | === Active Session History (ASH) === | ||
# 핵심 기능 | # 핵심 기능 : 실시간 세션 활동 모니터링 | ||
# 요점 | # 요점 : | ||
#: - 활성 세션의 실시간 상태 추적 | #: - 활성 세션의 실시간 상태 추적 | ||
#: - Wait Event 분석 | #: - Wait Event 분석 | ||
| 35번째 줄: | 35번째 줄: | ||
=== SQL 튜닝 (SQL Tuning) === | === SQL 튜닝 (SQL Tuning) === | ||
# 핵심 기능 | # 핵심 기능 : 개별 SQL 문장 성능 최적화 | ||
# 요점 | # 요점 : | ||
#: - SQL Tuning Advisor 활용 | #: - SQL Tuning Advisor 활용 | ||
#: - Execution Plan 분석 | #: - Execution Plan 분석 | ||
| 44번째 줄: | 44번째 줄: | ||
=== SQL Plan Management === | === SQL Plan Management === | ||
# 핵심 기능 | # 핵심 기능 : SQL 실행 계획 안정성 보장 | ||
# 요점 | # 요점 : | ||
#: - SQL Plan Baseline 생성 | #: - SQL Plan Baseline 생성 | ||
#: - 계획 변경 제어 | #: - 계획 변경 제어 | ||
| 52번째 줄: | 52번째 줄: | ||
=== 메모리 관리 (Memory Management) === | === 메모리 관리 (Memory Management) === | ||
# 핵심 기능 | # 핵심 기능 : SGA 및 PGA 메모리 최적화 | ||
# 요점 | # 요점 : | ||
#: - Automatic Memory Management (AMM) | #: - Automatic Memory Management (AMM) | ||
#: - SGA 컴포넌트별 크기 조정 | #: - SGA 컴포넌트별 크기 조정 | ||
| 60번째 줄: | 60번째 줄: | ||
=== I/O 최적화 (I/O Optimization) === | === I/O 최적화 (I/O Optimization) === | ||
# 핵심 기능 | # 핵심 기능 : 디스크 I/O 성능 향상 | ||
# 요점 | # 요점 : | ||
#: - 테이블스페이스 및 데이터파일 배치 | #: - 테이블스페이스 및 데이터파일 배치 | ||
#: - Temporary Tablespace 관리 | #: - Temporary Tablespace 관리 | ||
| 68번째 줄: | 68번째 줄: | ||
=== Wait Event 분석 === | === Wait Event 분석 === | ||
# 핵심 기능 | # 핵심 기능 : 대기 이벤트를 통한 병목 지점 식별 | ||
# 요점 | # 요점 : | ||
#: - 주요 Wait Event 유형별 대응방안 | #: - 주요 Wait Event 유형별 대응방안 | ||
#: - db file scattered read/sequential read | #: - db file scattered read/sequential read | ||
| 76번째 줄: | 76번째 줄: | ||
=== Optimizer 통계 관리 === | === Optimizer 통계 관리 === | ||
# 핵심 기능 | # 핵심 기능 : Cost-Based Optimizer 최적화 | ||
# 요점 | # 요점 : | ||
#: - 자동 통계 수집 (GATHER_STATS_JOB) | #: - 자동 통계 수집 (GATHER_STATS_JOB) | ||
#: - 수동 통계 수집 방법 | #: - 수동 통계 수집 방법 | ||
| 84번째 줄: | 84번째 줄: | ||
=== 파티셔닝 (Partitioning) === | === 파티셔닝 (Partitioning) === | ||
# 핵심 기능 | # 핵심 기능 : 대용량 테이블 성능 최적화 | ||
# 요점 | # 요점 : | ||
#: - 파티션 프루닝 효과 | #: - 파티션 프루닝 효과 | ||
#: - 파티션별 병렬 처리 | #: - 파티션별 병렬 처리 | ||
| 92번째 줄: | 92번째 줄: | ||
=== 병렬 처리 (Parallel Processing) === | === 병렬 처리 (Parallel Processing) === | ||
# 핵심 기능 | # 핵심 기능 : 다중 프로세스를 통한 성능 향상 | ||
# 요점 | # 요점 : | ||
#: - Parallel Query 설정 | #: - Parallel Query 설정 | ||
#: - DOP (Degree of Parallelism) 결정 | #: - DOP (Degree of Parallelism) 결정 | ||
| 100번째 줄: | 100번째 줄: | ||
=== 결과 캐시 (Result Cache) === | === 결과 캐시 (Result Cache) === | ||
# 핵심 기능 | # 핵심 기능 : 쿼리 결과 캐싱을 통한 성능 향상 | ||
# 요점 | # 요점 : | ||
#: - SQL 결과 캐시 활성화 | #: - SQL 결과 캐시 활성화 | ||
#: - PL/SQL 함수 결과 캐시 | #: - PL/SQL 함수 결과 캐시 | ||
| 139번째 줄: | 139번째 줄: | ||
=== 자동화 권장 설정 === | === 자동화 권장 설정 === | ||
# 통계 수집 | # 통계 수집 : GATHER_STATS_JOB 활성화 | ||
# 메모리 관리 | # 메모리 관리 : AMM 또는 ASMM 사용 | ||
# SQL 튜닝 | # SQL 튜닝 : SQL Tuning Task 자동 실행 | ||
# 세그먼트 관리 | # 세그먼트 관리 : ASSM(Automatic Segment Space Management) 사용 | ||
* 참조 : https://docs.oracle.com/en/database/oracle/oracle-database/19/tdppt/database-2-day-performance-tuning-guide.pdf | |||
2025년 9월 16일 (화) 10:52 기준 최신판
Oracle Database 성능 튜닝 가이드 (19c)
주요 목록 구성
성능 튜닝 개요 (Performance Tuning Overview)
- 핵심 기능 : 성능 문제 식별 방법론과 튜닝 접근법
- 요점 :
- - 성능 문제의 근본 원인 분석
- - 시스템적 접근법 vs 개별 SQL 튜닝
- - 성능 모니터링의 중요성
자동 데이터베이스 진단 모니터 (ADDM)
- 핵심 기능 : 자동화된 성능 분석 및 권고사항 제공
- 요점 :
- - AWR 스냅샷 기반 자동 분석
- - 성능 병목 지점 자동 식별
- - 구체적인 튜닝 권고사항 제공
- - ADDM 보고서 해석 방법
Automatic Workload Repository (AWR)
- 핵심 기능 : 성능 데이터 수집 및 보관
- 요점 :
- - 시스템 성능 통계 자동 수집
- - 스냅샷 간격 설정 (기본 1시간)
- - AWR 보고서 생성 및 분석
- - 베이스라인 설정을 통한 성능 비교
Active Session History (ASH)
- 핵심 기능 : 실시간 세션 활동 모니터링
- 요점 :
- - 활성 세션의 실시간 상태 추적
- - Wait Event 분석
- - ASH 보고서를 통한 특정 시점 분석
- - Top Activity 식별
SQL 튜닝 (SQL Tuning)
- 핵심 기능 : 개별 SQL 문장 성능 최적화
- 요점 :
- - SQL Tuning Advisor 활용
- - Execution Plan 분석
- - 힌트 사용법
- - 인덱스 최적화
- - 바인드 변수 사용
SQL Plan Management
- 핵심 기능 : SQL 실행 계획 안정성 보장
- 요점 :
- - SQL Plan Baseline 생성
- - 계획 변경 제어
- - Adaptive Cursor Sharing
- - Plan Evolution
메모리 관리 (Memory Management)
- 핵심 기능 : SGA 및 PGA 메모리 최적화
- 요점 :
- - Automatic Memory Management (AMM)
- - SGA 컴포넌트별 크기 조정
- - PGA_AGGREGATE_TARGET 설정
- - Buffer Cache Hit Ratio 모니터링
I/O 최적화 (I/O Optimization)
- 핵심 기능 : 디스크 I/O 성능 향상
- 요점 :
- - 테이블스페이스 및 데이터파일 배치
- - Temporary Tablespace 관리
- - REDO 로그 최적화
- - I/O 통계 분석
Wait Event 분석
- 핵심 기능 : 대기 이벤트를 통한 병목 지점 식별
- 요점 :
- - 주요 Wait Event 유형별 대응방안
- - db file scattered read/sequential read
- - latch 경합 해결
- - enq: TX - row lock contention
Optimizer 통계 관리
- 핵심 기능 : Cost-Based Optimizer 최적화
- 요점 :
- - 자동 통계 수집 (GATHER_STATS_JOB)
- - 수동 통계 수집 방법
- - 히스토그램 활용
- - 통계 정확성 검증
파티셔닝 (Partitioning)
- 핵심 기능 : 대용량 테이블 성능 최적화
- 요점 :
- - 파티션 프루닝 효과
- - 파티션별 병렬 처리
- - 파티션 방식 선택 (Range, Hash, List)
- - 서브파티셔닝
병렬 처리 (Parallel Processing)
- 핵심 기능 : 다중 프로세스를 통한 성능 향상
- 요점 :
- - Parallel Query 설정
- - DOP (Degree of Parallelism) 결정
- - 병렬 처리 모니터링
- - 리소스 관리
결과 캐시 (Result Cache)
- 핵심 기능 : 쿼리 결과 캐싱을 통한 성능 향상
- 요점 :
- - SQL 결과 캐시 활성화
- - PL/SQL 함수 결과 캐시
- - 캐시 적중률 모니터링
- - 캐시 무효화 정책
DBA를 위한 핵심 실행 절차
=== 일일 성능 모니터링 체크리스트 === **AWR 보고서 확인**
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
**ADDM 권고사항 검토**
@$ORACLE_HOME/rdbms/admin/addmrpt.sql
**Top SQL 분석**
SELECT sql_id, executions, elapsed_time, cpu_time FROM v$sqlstats ORDER BY elapsed_time DESC;
**Wait Event 모니터링**
SELECT event, total_waits, time_waited FROM v$system_event WHERE wait_class != 'Idle' ORDER BY time_waited DESC;
성능 문제 해결 순서
- 시스템 레벨 분석** → ADDM/AWR 보고서
- 세션 레벨 분석** → ASH 보고서
- SQL 레벨 분석** → SQL Tuning Advisor
- 오브젝트 레벨 분석** → 통계 정보 및 인덱스
자동화 권장 설정
- 통계 수집 : GATHER_STATS_JOB 활성화
- 메모리 관리 : AMM 또는 ASMM 사용
- SQL 튜닝 : SQL Tuning Task 자동 실행
- 세그먼트 관리 : ASSM(Automatic Segment Space Management) 사용