p.498, 3-107
- 데이터 입, 출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화하는 것
- 쿼리 성능 최적화하기 전, 성능 측정 도구인 APM(Application Performance Management)을 사용해 최적화 할 쿼리를 선정해야 함
- 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획(Execution Plan)을 EXPLAIN 명령어를 통해 검토하고, SQL 코드와 인덱스 재구성
*옵티마이저(Optimizer): 작성된 SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈
1) RBO(Rule Based Optimizer) vs CBO(Cost Based Optimizer)
|
RBO |
CBO |
최적화 기준 |
규칙에 정의된 우선순위 |
액세스 비용 |
성능 기준 |
개발자의 SQL 숙련도 |
옵티마이저 알고리즘의 예측 성능 |
특징 |
실행 계획 예측이 쉬움 |
성능 통계치 정보 활용, 예측이 복잡함 |
고려사항 |
개발자의 규칙 이해도, 규칙의 효율성 |
비용 산출 공식의 정확성 |
2) SQL 코드 및 인덱스 재구성
▶ SQL 코드 재구성
-서브 쿼리에 특정 데이터가 존재하는지 확인 할 때는 IN보다 EXISTS 활용
-실행 계획이 잘못되었다고 판단되는 경우 힌트(Hint)를 활용해 변경
▶ 인덱스 재구성
-인덱스의 추가 및 변경은 해당 테이블을 참조하는 다른 SQL문에도 영향을 줄 수 있으므로 신중히 결정
-단일 인덱스로 쓰기나 수정 없이 일기로만 사용되는 테이블의 경우 IOT(Index-Organized Table) 구성 고려
'정보처리기사 필기 총정리 > 3과목: 데이터베이스 구축' 카테고리의 다른 글
3과목 추가 정리: 수제비 ★★★ (0) | 2020.10.03 |
---|---|
데이터 전환 ★ (0) | 2020.10.03 |
ORM(Object-Relational Mapping) ★ (0) | 2020.10.03 |
DMBS 접속 기술 ★ (0) | 2020.10.03 |
SQL 활용 ★★ (0) | 2020.10.03 |
댓글