행궁동 데이터 엔지니어

반응형

DB 튜닝 방법은 크게 액세스 하는 데이터가 소량인지 대량인지

만약 액세스 하는 데이터가 대량이라면 부분 범위 처리가 가능한지 아닌지에 따라 큰 틀에서 튜닝 방법을 나눌 수 있습니다.

 

튜닝 방법 나누기 (데이터 대량/소량, 부분 범위 처리 가능/불가능)

1.1. 액세스하는 데이터가 소량인 경우

  • 인덱스, NL(Nested Loop) 조인으로 해결
  • 인덱스 선두 컬럼 사용
  • 생성한 인덱스를 잘 활용할 수 있도록 Equal(=) 조건 사용
  • 기존 인덱스로 개선되지 않는다면 테이블 액세스 최소화를 위한 컬럼 추가 or 인덱스 추가/변경

1.2. 액세스 하는 데이터가 대량인 경우 : 부분 범위 처리 가능 / 불가능으로 나눠서 확인

 

2.1. 액세스 하는 데이터가 대량 & 부분 범위 처리가 가능한 경우

  • 해당 쿼리가 지원하려는 비즈니스가 부분 범위 처리가 가능한 경우
  • 인덱스, NL 조인, 페이징 처리로 해결
  • Sort 연산을 생략할 수 있는 인덱스 구성 (실행계획 상 Order by 생략)

2.2. 액세스 하는 데이터가 대량 & 부분 범위 처리가 불가능한 경우 

  • Full scan : 병렬 처리, 파티션
  • 해시 조인
  • 클러스터링 : IOT(Index Organized Table), Cluster
  • Array 처리

 

파싱 부하를 줄이기 위한 방법

  • 바인드 변수 사용 (하드 파싱 감소)
  • 세션 커서 캐싱
  • 애플리케이션 커서 캐싱

 

이외 주요 체크리스트

  • DB 함수 활용 기준
  • 페이징 처리 패턴
  • 옵션 조건 처리 패턴
  • 통계정보 수집 정책

 

참고자료

1. 그루비, 04. 라이브러리 캐시 최적화 원리, http://wiki.gurubee.net/pages/viewpage.action?pageId=29065393
2. 조시형, 국가공인 SQLP 자격검정 핵심노트 2, http://www.yes24.com/Product/Goods/103521655?OzSrank=2

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band