통계정보와 비용 계산 원리

선택도와 카디널리티

통계정보

비용 계산 원리

옵티마이저에 대한 이해

옵티마이저 종류

-- 고객유형코드에 인덱스가 있으면 무조건 인덱스 사용
-- 하지만, 해당 조건에 대한 선택도가 90%라면 좋은 선택이 아님
SELECT *
FROM 고객
WHERE 고객유형코드 = 'CC0123';

-- ORDER BY가 Full Scan보다 우선순위가 높아 무조건 인덱스 사용
-- 부분범위 처리가 가능한 상황에서 인덱스로 소트 연산을 생략한다면 성능에 이점
-- 인덱스로 전체 레코드를 엑세스하는 것은 좋지 않음
SELECT *
FROM 고객
ORDER BY 고객명;

-- BETWEEN이 부등호보다 우선순위가 높아 연봉 컬럼 인덱스를 사용
-- 하지만 60세 이상 사원보다 3000 ~ 9000 수준의 연봉을 받는 사원이 더 많음
SELECT *
FROM 사원
WHERE 연령 >= 60
AND 연봉 BETWEEN 3000 AND 9000;

옵티마이저 모드

옵티마이저에 영향을 미치는 요소

옵티마이저의 한계

개발자의 역할