반응형
DBMS에서 쿼리를 처리하는 5단계
- 구문 분석 (Parsing)
- 요청하는 쿼리가 잘못됐는지 확인하는 과정
- 구문 오류 및 맞춤법 오류는 이 단계에서 검색할 수 있습니다
- 유효성 검사
- 테이블이 데이터베이스에 있는지, 모든 열이 존재하고 열 이름이 모호하지 않은지, 사용자에게 쿼리문을 실행하는데 필요한 권한이 있는지 등 이 단계에서 특정 의미 체계 오류를 검색할 수 있습니다.
- 액세스 계획 생성
- 최적화
- 액세스 계획을 수행하는 다양한 방법을 살펴봅니다.
- 여러 대안을 탐색한 후 DBMS는 그 중 하나를 선택합니다.
- 실행
- DBMS는 액세스 계획을 실행하여 쿼리문을 실행합니다.
SQL 파싱 순서
- Syntax 에러(문법, 구문 오류) 체크
- Semantic(권한, 존재 여부) 체크
- Library Cache 영역으로 가서 저장되어 있는 정보가 있는지 체크
- 예전에 같은 SQL을 실행한적이 있고 최적화 된 실행계획이 Library Cache에 저장되어 있다면
- Cache 영역에서 바로 꺼내서 실행하고 끝이 납니다.
- Library Cache에 저장되어 있는 정보가 없다면 옵티마이저가 수 많은 실행계획들을 도출해낸 다음에 최적화를 거치게 된 다음 SQL 엔진이 해석할 수 있는 언어로 변환을 하는 Row-source generation이라는 과정을 거쳐서 실행이 됩니다.
소프트 파싱과 하드 파싱
Soft Parsing(소프트 파싱)
위 SQL 파싱 순서에서 3.a에 해당하는 Librarry Cache에서 바로 꺼내서 쓰는게 소프트 파싱입니다.
Hard Parsing(하드 파싱)
3.b에 해당하는 옵티마이저에 의해서 최적화를 하고 Row-source generation까지 하고 그 다음 실행되는게 하드 파싱입니다.
반응형
'CS (Computer Science) > 데이터베이스' 카테고리의 다른 글
[Database] MYSQL로 ERD 쉽게 만들기 (0) | 2022.05.27 |
---|