데이터베이스 튜닝의 개요
데이터베이스 튜닝의 정의
DBMS 및 OS, 시스템, 어플리케이션의 이해를 바탕으로, 불합리한 요소를 찾아 제거/수정하여 성능을 개선하기 위한 일련의 작업
데이터베이스 튜닝의 목적
- 업무적인 환경과 시스템적 환경에 적합한 데이터베이스 파라미터를설정한다.
- 데이터베이스에 접근하는 SQL 문장은 가능한 한 디스크 블록에 최소로 접근하도록 한다.
- 디스크 브록에서 한 번 읽은 데이터는 가능하면 메모리 영역에 보관한다.
- 모든 사용자의 SQL 문장은 공유 가능하도록 명명 표준을 준수하여 작성한다.
- 잠금 발생이 최소가 되도록 한다.
데이터베이스 튜닝의 3단계
데이터베이스 튜닝의 절차
단계 |
상세 설명 |
분석 |
데이터베이스 환경 분석 |
이행 |
데이터베이스 성능개선 이행 |
평가 |
데이터베이스 성능개선 평가 |
데이터베이스 환경 분석
활동 |
주요 내용 |
대상/사례 |
자료 수집 |
데이터베이스 모니터링과 데이터베이스 객체 현황 파악 및 물리 설계 요소에 대해 성능과 관련된 지표들을 분석하기 위한 기초 자료를 수집 |
CPU 사용률, Paging & Swap Ratio, 객체 현황 정보, 평균 Throughput, Response Time 등 |
목표 설정 |
수집된 기초 자료를 통해 데이터 모델 분석, 액세스 패스 분석, 시스템 자원 현황 분석, SQL 성능 분석 등을 종합하여 문제요소 및 튜닝 목표 설정 |
Transaction Monitoring, Latch 분석 |
데이터베이스 성능개선 이행
활동 |
주요 내용 |
대상/사례 |
파라미터 재조정 |
DBMS 파라미터 변수의 세부 조율을 통하여 비투자관점의 성능 향상 유도 |
SGA의 크기, Instance 구성하는 메모리 크기, DB Block Size의 재설정 |
설계 재검토 |
정보 접근 영향도 분석 및 설계 ER모델의 재구성을 통해 설계를 통한 성능 향상 도출 |
비정규화, 엔티티의 통합, 모델의 재설계를 통한 분할, 식별자의 지정 |
SQL문 최적화 |
수행 중인 Query 실행계획 분석을 통한 Optimizer 성격을 고려한 SQL문 조정 |
Hint 적용, 의도적 JOIN 방식 변경, 통계정보의 현행화 유도 |
분산구조 최적화 |
네트워크의 부하를 고려한 분산 모델 셜계, HA 구조 및 업무적 특성을 고려 NW 설계 |
테이블 위치, 테이블 분할 분산, 테이블 Replication, 요약 정보 분산 |
색인 최적화 |
통계 및 Business Rule, 접근 경로의 분석, 색인정보의 효율성 기반 인덱스 재설계 |
업무규칙, 분포/산포도 분석, 색인 추가 및 결합컬럼의 순서 변경 |
데이터베이스 성능개선 평가
평가활동 |
상세 내용 |
성능 개선 항목의 AS-IS 및TO-BE 현황 비교 |
튜닝활동에 대한 정량적인 평가 위해 기존/변경 정보 기록 비용 추가 투입 시, ROI분석 위한 목표치 달성 여부 확인 |
일정 기간 내 튜닝 수행항목 모니터링 |
시간/시즌/일정적인 특성 상세화 위한 장기적인 성능 추적 수행 성능 추가 개선을 위한 AS-IS 분석의 기초 자료로 사용 |
데이터베이스 튜닝의 기대효과
IT 관점에서의 기대효과
- 응답시간: 신규 자원투입을 하지 않더라도, 응답속도를 향상시킬 수 있음
- 처리량: 작업처리량이 증대되어, 사용자 증대에 따른 증설 시점 지연 가능
- 장애방지: 성능저하에 따른 Lock, 병목현상 해결
- IT 인력능력: SQL 및 Optimizer에 대한 Insight 향상
비즈니스 관점에서의 기대효과
- 유지보수성 향상: SQL 문의 표준화 통한 수월한 유지보수 지원
- OPEX 비용 감소: System Device, 유지보수, 라이선스 비용 증가도 낮출 수 있음
- 빠른 서비스 지원: 정보시스템 속도 향상에 따른 대고객 서비스 속도 증가
- 인건비 절감: IT인력의 숙련도 향상 유도, 지원가능 범위 확대, TCO 관점의 이익 존재