SQL
Structured Query Language의 준말, 즉 구조적 질의 언어 이다.
SQL Optimizer
프로시저를 생성홰주는 DBMS 내부 엔진
procedure
SQL의 결과집합을 만드는 과정을 처리하는 주체
SQL최적화
- SQL 파싱
- 파싱 트리 생성 → 문법(Styntax) 체크 → Semantic(의미상 요류, 권한 등등….) 체크
- SQL 최적화
- 시스템 및 오브젝트 통계정보를 바탕으로 실행경로를 생성 및 최적의 실행경로를 선택
- 로우 소스 생성
- 선택된 실행경로를 바탕으로 실행 가능한 코드/프로시저의 형태로 포멧팅 - Row-Source Generator
- Library Cache
💡 SQL파싱, 최적화, 로우 소스 생성 과정을 거쳐 생성한 내부 프로시저를 반복 재사용할 수 있도록 캐싱해 두는 메모리 공간
- SGA
💡 **System Global Area** - 서버 프로세스와 백그라운드 프로세스가 공통으로 액세스하는 데이터와 제어구조를 캐싱하는 메모리 공간
`DB Buffer Cache`, `Redo Log Buffer`, `Shared Pool`(Library Cache, Data Dictionary Cache) 등이 있다
Soft Parsing
SQL을 캐시에서 찾아 바로 실행단계로 넘기는 과정
Hard parsing
캐시에서 찾는 것을 실패해 최적화 및 로우 소스 생성 단께까지 모두 거치는 과정
- 사용하는 정보 테이블, 컬럼, 인덱스 구조 정보 오브젝트 통계 - 테이블 통계, 인덱스 통계, 컬럼(히스토그램 포함) 통계 시스템 통계 - CPU 속도, Single Block I/O 속도, MultiBlock I/O 속도 옵티마이저 관련 파라미터
SQL 실행 순서
- SQL 파싱
- 캐시 확인
- 캐시 X → 최적화 → 로우 소스 생성
- 실행