1. SQL문 재작성으로 착한 쿼리 만들기

(1) 처음부터 모든 데이터를 가져오는 나쁜 SQL문

현황분석

Untitled

사원번호가 10,001 ~ 10,100 까지 사원들의 평균연봉, 최고연봉, 최저연봉 구하는 쿼리.

SELECT 사원.사원번호, 급여.평균연봉, 급여.최고연봉, 급여.최저연봉 FROM 사원, (SELECT 사원번호, ROUND(AVG(연봉),0) 평균연봉, ROUND(MAX(연봉),0)최고연봉, ROUND(MIN(연봉),0) 최저연봉 FROM 급여 GROUP BY 사원번호) 급여 WHERE 사원.사원번호 = 급여.사원번호 AND 사원.사원번호 BETWEEN 10001 AND 10100;

튜닝 전 실행계획

Untitled

중첩 루프조인 하는 두개 테이블은 사원 테이블, <derived2> 테이블

→ from 절에 DERIVED ⇒ 임시 테이블 생성한다.

튜닝 수행

type: index → 인덱스 풀 스캔.

rows: 2838731 → 급여 테이블 전체 데이터 건수와 유사. 모든 데이터에 접근 예측

between 구문으로 데이터 접근 → range 유형 통해 범위 검색 수행

Untitled