실행 계획이 SQL 구문의 성능을 결정

실행 계획이 만들어지면 DBMS는 해당 실행 계획을 바탕으로 데이터에 접근을 하지만, 데이터의 양이 많은 테이블에 접근하거나 복잡한 SQL 구문을 실행하면 지연이 발생하는 경우가 종종 있습니다.

원인

  1. 통계 정보가 부족한 경우
  2. 통계 정보가 최신이라도 SQL 구문이 너무 복잡해 옵티마이저가 최적의 경로(방법)을 선택하지 못한 경우

1. 실행 계획 확인 방법

모든 DBMS는 실행 계획을 살펴볼 수 있는 명령어가 존재하며 SQL 구문의 지연이 발생 시 제일 먼저 실행 계획을 살펴봐야 합니다.

실행 계획을 확인하는 명령어

이름 명령어
Oracle set autotrace traceonly
MS SQL SET SHOWPLAN_TEXT ON
PostgreSQL EXPLAIN SQL 구문
MySQL EXPLAIN EXTENED SQL 구문

기본적인 SQL 실행 계획

  1. 테이블 풀 스캔(Full Scan)의 실행 계획
  2. 인덱스 스캔의 실행 계획
  3. 간단한 테이블 결합의 실행 계획

예시 - 특정 업종의 점포에 대한 평가와 주소 지역 데이터를 저장하고 있는 테이블