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) */
'DATABASE > SQL' 카테고리의 다른 글
SQL Turning :: SQL의 프로세스와 Database 저장구조 (0) | 2019.05.30 |
---|---|
SQL Turning :: 공유와 재사용 (0) | 2019.05.29 |
ERROR: ORA-12505 TNS : 프로토콜 어댑터 오류 (0) | 2019.04.05 |
명시적 형변환과 암시적 형변환 (0) | 2019.03.03 |
SELECT문의 실행순서 (0) | 2019.03.02 |
사이트의 정보
코딩하렴
으렴