본문 바로가기
DBA

데이터베이스 튜닝

by 엘리후 2024. 2. 26.

데이터베이스 튜닝

개념

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

시스템 성능 저하

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

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

목적

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

데이터베이스 튜닝 방식

단계튜닝 영역튜닝 방안사례

1 DB 설계    
(모델링 관점) - 데이터베이스 설계 단계에서 성능을 고려하여 설계한다.    
  • 데이터 모델링, 인덱스 설계
  • 데이터 파일, 테이블 스페이스 설계
  • 데이터베이스 용량 산정 | - 반정규환
  • 분산파일 배치 |
    | 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. : 파티셔닝(테이블 수평/수직 분할)
  3. 식별자 지정, Key 설정
  4. : 본질/인조 식별자 정의, 클러스터링
  5. 효율적 인덱스 설정
  6. : 인덱스 분포도 고려 10~15%(손익 분기점)
  7. 정규화/반정규화
  8. : 테이블, 컬럼, 관계 정규화/반정규화
  9. 적절한 데이터 타입 선정
  10. : 조인시 연결되는 데이터 타입 일치
  11. 데이터 모델링
  12. : 슈퍼/서브 타입, PK, 파티셔닝, 데이터 통합

2. DBMS

  1. I/O 최소화
  2. : 실제 필요한 데이터만 Read, Query off-loading
  3. Buffer Pool 튜닝
  4. : 지역성 관점 데이터 관리, Keep Buffer Cache
  5. Commit/Check Point
  6. : Check Point 수행주기 조절, Commit 주기 조정
  7. Thread/Reuse
  8. : Middleware 긴,ㅇ과 연동

3. SQL

  1. Undo Segment 설정
  2. : Undo 영역 크기 조정
  3. Optimizer
  4. : RBO/CBO 이해, 통계 정보 최신화
  5. 힌트 사용
  6. : 지원되는 힌트 기반 실행계획 유도
  7. 부분범위 처리
  8. : 일부만 Access, 옵티마이저 정보 제공
  9. 인덱스 활용
  10. : 인덱스 기반 조회 속도 향상, Sort 연산 대체
  11. 조인 방식/순서
  12. :실행 계획(Plan) 확인 후 조정
  13. 동적 SQL 지양
  14. : 파싱 부하 감소를 위한 Static SQL 사용
  15. 다중 처리
  16. : 한 번의 DBMS 호출로 여러 건 동시 처리
  17. 병렬 처리
  18. : 하나의 SQL을 여러 개의 CPU가 분할 처리
  19. SORT 튜닝 수행
  20. : 인덱스 기반 MIN, MAX 구하기, TOP-N 쿼리

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

  1. CPU 튜닝
  2. : Peak Time 60% 이하 유지, CPU 증설, 과다 점유 검색 및 해결
  3. 메모리 튜닝
  4. : 메모리 최적화, 버퍼 크기 조정
  5. 스토리지 튜닝
  6. : RAID 레벨 조정, SSD 도입, 스토리지 스티어링
  7. I/O 튜닝
  8. : I/O 분산 위한 파일 재배치, RAID 활용
  9. 네트워크 튜닝
  10. : 로드밸런싱, 대역폭 확대

댓글