데이터베이스 어플리케이션, 데이터베이스 자체, 운영체제 등의 조정을 통하여 데이터베이스 시스템의 성능을 향상시키는 작업
일반적으로 시스템 성능 저하 문제는 잘못된 APP 및 DB 설계에 의해 발생한다.
DB 튜닝은 이러한 성능 저하를 최소화한다.
단계 | 튜닝 영역 | 튜닝 방안 | 사례 |
---|---|---|---|
1 | DB 설계 | ||
(모델링 관점) | - 데이터베이스 설계 단계에서 성능을 고려하여 설계한다. |
테이블 분할 및 통합
: 파티셔닝(테이블 수평/수직 분할)
식별자 지정, Key 설정
: 본질/인조 식별자 정의, 클러스터링
효율적 인덱스 설정
: 인덱스 분포도 고려 10~15%(손익 분기점)
정규화/반정규화
: 테이블, 컬럼, 관계 정규화/반정규화
적절한 데이터 타입 선정
: 조인시 연결되는 데이터 타입 일치
데이터 모델링
: 슈퍼/서브 타입, PK, 파티셔닝, 데이터 통합
I/O 최소화
: 실제 필요한 데이터만 Read, Query off-loading
Buffer Pool 튜닝
: 지역성 관점 데이터 관리, Keep Buffer Cache
Commit/Check Point
: Check Point 수행주기 조절, Commit 주기 조정
Thread/Reuse
: Middleware 긴,ㅇ과 연동
Undo Segment 설정
: Undo 영역 크기 조정
Optimizer
: RBO/CBO 이해, 통계 정보 최신화
힌트 사용
: 지원되는 힌트 기반 실행계획 유도
부분범위 처리
: 일부만 Access, 옵티마이저 정보 제공
인덱스 활용
: 인덱스 기반 조회 속도 향상, Sort 연산 대체
조인 방식/순서
:실행 계획(Plan) 확인 후 조정
동적 SQL 지양
: 파싱 부하 감소를 위한 Static SQL 사용
다중 처리
: 한 번의 DBMS 호출로 여러 건 동시 처리
병렬 처리
: 하나의 SQL을 여러 개의 CPU가 분할 처리
SORT 튜닝 수행
: 인덱스 기반 MIN, MAX 구하기, TOP-N 쿼리
CPU 튜닝
: Peak Time 60% 이하 유지, CPU 증설, 과다 점유 검색 및 해결
메모리 튜닝
: 메모리 최적화, 버퍼 크기 조정
스토리지 튜닝
: RAID 레벨 조정, SSD 도입, 스토리지 스티어링
I/O 튜닝
: I/O 분산 위한 파일 재배치, RAID 활용
네트워크 튜닝
: 로드밸런싱, 대역폭 확대