1장 SQL 처리 과정과 I/O
1.1 | SQL 파싱과 최적화
SQL 옵티마이저
: SQL 쿼리에서 원하는 결과 집합의 프로시저를 만들어 내는 DBMS 내부 엔진
1.1.2 SQL 최적화
- SQL 파싱
- 파싱 트리 생성
- Syntax 체크 - 문법적 오류 체크(오타, 키워드 등)
- Semantic 체크 - 의미상 오류가 없는지 체크(존재하지 않는 테이블 등)
- SQL 최적화
SQL 옵티마이저
→ 미리 수집한 데이를 바탕으로 다양한 실행경로를 생성해서 비교한 후 가장 효율적인 하나를 선택 → 데이터베이스 성능을 결정하는 가장 핵심적인 엔진
- 로우 소스 생성
- 실제 실행 가능한 코드 또는 프로시저 형태로 포맷팅
1.1.3 SQL 옵티마이저
- 사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 액세스 경로를 선택해주는 DBMS의 핵심 엔진
- 옵티마이저의 최적화 단계
- 쿼리를 수행하는데 후보군이 될만한 실행계획들 선별
- 시스템 통계정보를 이용해 각 실행계획의 예상비용을 산정
- 최저 비용을 나타내는 실행계획 선택
1.1.4 실행계획과 비용
- 옵티마이저는 자동차 내비게이션과 비슷함
실행계획
- SQL 옵티마이저가 생성한 처리절차를 사용자가 확인할 수 있게 트리 구조로 표현한 것
비용(Cost)
- 쿼리를 수행하는 동안 발생할 것으로 예상하는 I/O 횟수 또는 예상 소요시간
1.1.5 옵티마이저 힌트
- 개발자가 더 효율적인 액세스 경로를 적용하고자 할 때 사용