Database Tuning (튜닝)
DB Optimizer(옵티마이저)
SQL를 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 DBMS 내부의 핵심엔진이다.
- 종류
- 규칙 기반 옵티마이저, 비용 기반 옵티마이저
- 과정
- 사용자가 던진 쿼리 수행을 위해, 후보군이 될 만한 실행 계획을 찾는다.
- 오브젝트 통계 및 시스템 통계 정보를 통해 각 실행 계획의 예상 비용으 산정한다.
- 갈 실행 계획을 비교해서 최저 비용을 갖는 하나를 선택한다.
힌트(Hint)
- 힌트란 SQL을 튜닝하기 위한 지시구문이다.
- 옵티마이저가 최적의 계획으로 SQL문을 처리하지 못하는 경우에 개발자 직접 최적의 실행 계획을 제공하는 것이다.
- 힌트는 SELECT 다음에 작성할 수 있으며, INDEX, PARALLEL 등 다양한 힌트절이 있다.
데이터베이스 튜닝과 방법
-DB 튜닝은 데이터베이스 구조나 데이터베이스 자체, 운영체제 등을 조정하여 데이터베이스 시스템의 성능을 향상시키는 작업을 의미한다.
-튜닝은 DB 설계 튜닝 > DBMS 튜닝 > SQL 튜닝의 단계로 진행할 수 있다.
1단계 : DB 설계 튜닝(모델링 관점)
- 튜닝 방법
- 데이터베이스 설계 단계에서 성능을 고려하여 설계
- 데이터 모델링, 인덱스 설계
- 데이터 파일, 테이블 스페이스 설계
- 데이터베이스 용량 산정
- 튜닝 사례
- 반정규화 분사 파이배치
2단계 : DBMS 튜닝(환경 관점)
- 튜닝 방법
- 성능을 고려하여 메모리나 블록 크기 지정
- CPU, 메모리 I/O에 관한 관점
- 튜닝 사례
- Buffer 크기
- Cache 크기
3단계 : SQL 튜닝(APP 관점)
- 튜닝 방법
- SQL 작성 시 선능 고려
- Join, Indexing, SQL Execution Plan
- 튜닝 사례
- Hash / Join
최종 수정 : 2021-12-19