SQL
기본 개념
데이터베이스과 통신하는 기본적인 구조적 질의 언어이며, 구조적, 집합적, 선언적인 특징을 가지고 있다.
SQL 처리 과정
- 파싱
- 사용자로부터 전달받은 SQL을 SQL 파서가 파싱하며, 이 과정에서 파싱 트리 생성, Syntax 체크(문법적 오류 체크), Semantic 체크(의미상 오류가 없는지 확인) 등을 수행한다.
- SQL 최적화
- 옵티마이저가 딕셔너리 테이블에서 미리 수집한 시스템 및 오브젝트 통계 정보를 바탕으로 다양한 실행 경로를 생성해 비교한 후 가장 효율적인 하나를 선택한다. DB의 효율을 결정짓는 가장 중요한 단계이다.
- 로우 소스 생성
- sql 옵티마이저가 선택한 실행 경로를 실제 수행 가능한 코드 또는 프로시저 형태로 포맷팅 하는 단계다. 로구 소스 생성기가 이 역할을 맡으며, 바인딩 변수를 할당하는 작업도 이 과정에 포함된다.
SQL 최적화 과정
- 사용자로부터 전달받은 쿼리들을 수행하는 데 후보군이 될만한 실행 계획들을 도출한다.
- 데이터 딕셔너리에 미리 산정해놓은 정보들을 바탕으로 예상 비용을 계산한다.
- 최저 비용을 나타내는 실행계획을 선택한다.
옵티마이저 힌트
옵티마이저 힌트 사용시 주의해야할 점들은 다음과 같다.
- 힌트 안에 인자 나열 시 ‘,’를 사용할 수 있지만, 힌트와 힌트 사이에 기재하면 안된다.
- 테이블 지정 시 스키마명까지 명시하면 안된다.
- FROM 절 테이블 옆에 별칭 지정 시 힌트에서도 별칭을 사영하여야한다.