기록공간

3-4-7장. 쿼리 성능 최적화 - C 본문

자격증공부/정보처리기사_필기

3-4-7장. 쿼리 성능 최적화 - C

입코딩 2020. 9. 16. 21:22
반응형

쿼리 성능 최적화의 개요

쿼리 성능 최적화는 데이터 입출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화하는 것이다.

 

  • 쿼리 성능을 최적화하기 전에 성능 측정 도구인 APM을 사용하여 최적화 할 쿼리를 선정해야 함

  • 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획을 검토하고 SQL 코드와 인덱스를 재구성

RBO vs CBO

RBO(Rule Based Optimizer) : 규칙 기반 옵티마이저

CBO(Cost Based Optimizer): 비용 기반 옵티마이저

 

실행 계획(Execution Plan)

실행 계획은 DBMS의 옵티마이저가 수립한 SQL 코드의 실행 절차와 방법을 의미한다.

 

  • 실행 계획은 EXPLAIN 명령어를 통해 확인할 수 있으며, 그래픽이나 텍스트로 표현됨

  • 실행 계획에는 요구사항들을 처리하기 위한 연산 순서가 적혀있으며, 연산에는 조인, 테이블 검색, 필터, 정렬 등이 있음

쿼리 성능 최적화

쿼리 성능 최적화는 실행 계획에 표시된 연산 순서, 조인 방식, 테이블 조회 방법 등을 참고하여 SQL문이 더 빠르고 효율적으로 작동하도록 SQL 코드와 인덱스를 재구성하는 것을 의미한다.

 

SQL 코드 재구성

  • WHERE 절을 추가하여 일부 레코드만 조회하게 함으로써 조회에 들어가는 비용을 줄임

  • WHERE 절에 연산자가 포함되면 INDEX를 활용하지 못하므로 가능한 한 연산자 사용을 자제

  • 서브 쿼리에 특정 데이터가 존재하는지 확인할 때는 IN보다 EXISTS를 활용

  • 옵티마이저의 실행 계획이 잘못되었다고 판단되는 경우 힌트를 활용하여 실행 계획의 액세스 경로 및 조인 순서를 변경

인덱스 재구성

  • SQL 코드에서 조회되는 속성과 조건들을 고려하여 인덱스를 구성

  • 실행 계획을 참고하여 인덱스를 추가하거나 기존 인덱스의 열 순서를 변경

  • 인덱스의 추가 및 변경은 해당 테이블을 참조하는 다른 SQL문에도 영향을 줄 수 있으므로 신중히 결정

  • 단일 인덱스로 쓰기나 수정 없이 읽기로만 사용되는 테이블의 경우 IOT(Index-Organized Table)로 구성하는 것을 고려

  • 불필요한 인덱스 제거

반응형
Comments