1. [DB] 실행 계획
ㅇ 실행 계획 이란?
- DBMS가 SQL 쿼리를 실행할 때 어떤 방식으로 데이터를 검색하고 처리할지를 설명한 계획
- 이를통해, DBMS가 선택한 최적화 전략을 확인하고, 쿼리 성능의 분석 및 문제의 진단이 가능
ㅇ SQL 질의 처리 순서
- 질의 -> 변환(어휘분석,구분분석,검증) -> 질의 최적화 -> 실행계획 -> 질의 실행 코드
ㅇ 실행 계획은, 주어진 SQL문의 요구사항을 처리하기 위한 절차,방법
- DBMS 내장 옵티마이저는, SQL 질의문을 최적으로 실행하려는 실행 계획으로 변환 함
- 실행 계획에 따라 SQL 질의문은 단계별로 수행됨
- 동일 SQL에 대해서도 다양한 처리 방법(실행계획)이 존재할 수 있음
ㅇ DBMS 종류 마다 옵티마이저 작동 방식이 다름
- MySQL 例) EXPLAIN (또는 DESCRIBE,DESC)을 SQL문 앞에 두면,
. MySQL 옵티마이저의 실행계획을 살필 수 있음
2. [DB] 실행 계획의 구성 요소
ㅇ 실행 계획을 결정하는 구성 요소
- 조인 순서 (Join Order)
- 조인 기법 (Join Method)
- 액세스 기법 (Access Method)
- 최적화 정보(Optimization Information)
- 연산 (Operation) 등
ㅇ 엑세스 기법 : 데이터를 찾는 프로세스
- 하나의 테이블에 접근할 때 사용할 수 있는 방법
. 인덱스 스캔(Index Scan) : 인덱스 테이블에서 만 찾음
. 테이블 스캔(Table Scan) : 인덱스 사용 없이 실제 데이터 저장 테이블에서 찾음
.. 例) WHERE절 내 LIKE 표현식에 중간 일치,후방 일치를 쓰면 B 트리 인덱스를 사용 안하고,
테이블 스캔을 함
ㅇ 최적화 정보
- 각 단계 마다의 예상 비용
- 이에는 Cost,Cardinality,Byte 등이 있음