CS (Computer Science)/데이터베이스

[Database] DBMS에서 쿼리를 처리하는 단계(쿼리 파싱 순서)

Juun 2022. 9. 26. 09:36
반응형

DBMS에서 쿼리를 처리하는 5단계

  1. 구문 분석 (Parsing)
    • 요청하는 쿼리가 잘못됐는지 확인하는 과정
    • 구문 오류 및 맞춤법 오류는 이 단계에서 검색할 수 있습니다
  2. 유효성 검사
    • 테이블이 데이터베이스에 있는지, 모든 열이 존재하고 열 이름이 모호하지 않은지, 사용자에게 쿼리문을 실행하는데 필요한 권한이 있는지 등 이 단계에서 특정 의미 체계 오류를 검색할 수 있습니다.
  3. 액세스 계획 생성
  4. 최적화
    • 액세스 계획을 수행하는 다양한 방법을 살펴봅니다.
    • 여러 대안을 탐색한 후 DBMS는 그 중 하나를 선택합니다.
  5. 실행
  • DBMS는 액세스 계획을 실행하여 쿼리문을 실행합니다.

SQL 파싱 순서

  1. Syntax 에러(문법, 구문 오류) 체크
  2. Semantic(권한, 존재 여부) 체크
  3. Library Cache 영역으로 가서 저장되어 있는 정보가 있는지 체크
    1. 예전에 같은 SQL을 실행한적이 있고 최적화 된 실행계획이 Library Cache에 저장되어 있다면
    2. Cache 영역에서 바로 꺼내서 실행하고 끝이 납니다.
    3. 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