데이터베이스 튜닝

정미·2022년 11월 2일
0

Computer Science

목록 보기
78/81

데이터베이스 튜닝

개념

데이터베이스 어플리케이션, 데이터베이스 자체, 운영체제 등의 조정을 통하여 데이터베이스 시스템의 성능을 향상시키는 작업

시스템 성능 저하

일반적으로 시스템 성능 저하 문제는 잘못된 APP 및 DB 설계에 의해 발생한다.

DB 튜닝은 이러한 성능 저하를 최소화한다.

목적

  • 갈수록 복잡화, 대량화되는 시스템을 그대로 유지하면서 DB 시스템을 최적화한다.
  • 어플리케이션이 높은 작업 처리량과 짧은 응답시간을 갖도록 한다.
  • DB를 활용하는 시스템을 안정시키고, 사용자의 만족과 관리자의 관리 능력을 향상시킨다.

데이터베이스 튜닝 방식

단계튜닝 영역튜닝 방안사례
1DB 설계
(모델링 관점)- 데이터베이스 설계 단계에서 성능을 고려하여 설계한다.
  • 데이터 모델링, 인덱스 설계
  • 데이터 파일, 테이블 스페이스 설계
  • 데이터베이스 용량 산정 | - 반정규환
  • 분산파일 배치 |
    | 2 | DBMS
    (환경 관점) | - 성능을 고려하여 메모리나 블록 크기 지정
  • CPU, 메모리 I/O 관점 | - Buffer 크기
  • Cache 크기 |
    | 3 | SQL
    (APP 관점) | - SQL 작성 시 성능 고려
  • Join, Indexing, SQL Execution Plan | - Hash
  • Join |
  • 튜닝 단계 순서대로 효율성이 줄어들면 우선 처리가 필요하다.
  • SW 처리가 불가능하거나 효율적이지 않는 경우 HW 방식의 시스템 데이터베이스 튜닝이 필요하다.
    • Scale-up, Scale-out 방식을 통해 SW 데이터베이스 튜닝의 한계 이상으로 튜닝이 가능하다.

튜닝 영역별 세부 기별

1. DB 설계

  1. 테이블 분할 및 통합

    : 파티셔닝(테이블 수평/수직 분할)

  2. 식별자 지정, Key 설정

    : 본질/인조 식별자 정의, 클러스터링

  3. 효율적 인덱스 설정

    : 인덱스 분포도 고려 10~15%(손익 분기점)

  4. 정규화/반정규화

    : 테이블, 컬럼, 관계 정규화/반정규화

  5. 적절한 데이터 타입 선정

    : 조인시 연결되는 데이터 타입 일치

  6. 데이터 모델링

    : 슈퍼/서브 타입, PK, 파티셔닝, 데이터 통합

2. DBMS

  1. I/O 최소화

    : 실제 필요한 데이터만 Read, Query off-loading

  2. Buffer Pool 튜닝

    : 지역성 관점 데이터 관리, Keep Buffer Cache

  3. Commit/Check Point

    : Check Point 수행주기 조절, Commit 주기 조정

  4. Thread/Reuse

    : Middleware 긴,ㅇ과 연동

3. SQL

  1. Undo Segment 설정

    : Undo 영역 크기 조정

  2. Optimizer

    : RBO/CBO 이해, 통계 정보 최신화

  3. 힌트 사용

    : 지원되는 힌트 기반 실행계획 유도

  4. 부분범위 처리

    : 일부만 Access, 옵티마이저 정보 제공

  5. 인덱스 활용

    : 인덱스 기반 조회 속도 향상, Sort 연산 대체

  6. 조인 방식/순서

    :실행 계획(Plan) 확인 후 조정

  7. 동적 SQL 지양

    : 파싱 부하 감소를 위한 Static SQL 사용

  8. 다중 처리

    : 한 번의 DBMS 호출로 여러 건 동시 처리

  9. 병렬 처리

    : 하나의 SQL을 여러 개의 CPU가 분할 처리

  10. SORT 튜닝 수행

    : 인덱스 기반 MIN, MAX 구하기, TOP-N 쿼리

시스템 데이터베이스 튜닝 기법

  1. CPU 튜닝

    : Peak Time 60% 이하 유지, CPU 증설, 과다 점유 검색 및 해결

  2. 메모리 튜닝

    : 메모리 최적화, 버퍼 크기 조정

  3. 스토리지 튜닝

    : RAID 레벨 조정, SSD 도입, 스토리지 스티어링

  4. I/O 튜닝

    : I/O 분산 위한 파일 재배치, RAID 활용

  5. 네트워크 튜닝

    : 로드밸런싱, 대역폭 확대


출처

0개의 댓글