데이터베이스 튜닝

데이터베이스 튜닝의 개요

데이터베이스 튜닝의 정의

DBMS 및 OS, 시스템, 어플리케이션의 이해를 바탕으로, 불합리한 요소를 찾아 제거/수정하여 성능을 개선하기 위한 일련의 작업

데이터베이스 튜닝의 목적

  1. 업무적인 환경과 시스템적 환경에 적합한 데이터베이스 파라미터를설정한다.
  2. 데이터베이스에 접근하는 SQL 문장은 가능한 한 디스크 블록에 최소로 접근하도록 한다.
  3. 디스크 브록에서 한 번 읽은 데이터는 가능하면 메모리 영역에 보관한다.
  4. 모든 사용자의 SQL 문장은 공유 가능하도록 명명 표준을 준수하여 작성한다.
  5. 잠금 발생이 최소가 되도록 한다.

데이터베이스 튜닝의 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 관점의 이익 존재