코딩하렴

SQL Turning :: SQL 처리 과정과 I/O

by 으렴

SQL : Structured Query Language

structured, set-based, declarative 질의 언어.

구조적이고 집합적인 결과가 나오지만 그 과정은 절차적.

 

 

SQL 최적화

SQL 최적화를 위해서 DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행가능한 상태로 만드는 과정.

 

1. SQL Parsing

Parsing Tree 생성 : SQL문을 이루는 개별 구성요소를 분석 → parsing tree 생성

Syntax Check : 문법적 오류 (사용불가, 이상한 순서, 누락된 `keyword`)

Semantic Check : 의미상 오류 (Table, column 미존재, 권한 등)

 

2. SQL 최적화

Optimizer가 실행경로 생성 뒤 효율적인 것 선택.

 

3. 로우 소스 생성

Optimizer가 선택한 실행경로를 실제 실행 or Procedure 형태로 Formatting(Row-Source Generator)

 

 

 SQL Optimizer

사용자가 하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 액세스 경로를 선택해주는 DBMS 핵심엔진.

 

1. 실행계획 후보군 탐색.

 

2. Data Dictinary에 미리 수집한 Object-System 통계정보를 이용해 각 실행 예상비용 산정

 

3. 최저 비용 실행계획 선택

 

 실행계획과 비용

실행계획 : Optimizer가 생성한 처리절차를 사용자가 확인 할 수 있게 트리구조로 표현한 것.

 

비용 : 쿼리를 수행하는 동안 발생하는 것. I/O횟수, 소요시간의 예상치.

 

 Optimizer Hint

Data Access Path를 바꿀 수 있음.

 

사용법 : 주석 뒤에 /*+ INDEX(A DEPT) */

 

 

 

 

 

사이트의 정보

코딩하렴

으렴

활동하기