[SQL] 처리 과정
Updated:
설명
- parse -> bind -> execute -> patch
- parse
- soft parse
- 문법 검사(syntax check)
- Parse Tree 생성
- Parse Tree 생성 과정에서 문법 검사
- 의미 검사(semantic check)
- 테이블, 컬럼 등이 실제로 존재하는지 확인
- 공유 풀 검사(Shared Pool Check)
- 라이브러리 캐시에 SQL문에 대한 해쉬 값이 존재하는지 확인
- 존재하는 경우 hard parse를 수행하지 않음
- 라이브러리 캐시
- 한 번이라도 실행된 SQL문 해시 값 실행 계획이 공유된 공간
- 라이브러리 캐시에 SQL문에 대한 해쉬 값이 존재하는지 확인
- 문법 검사(syntax check)
- hard parse
- 실행 계획 생성 및 라이브러리 캐시에 등록
- soft parse
- bind
- 사용자로부터 입력된 값으로 치환
- execute
- database buffer cache에 캐싱된 블록이 존재 유무 검사
- 있으면 fetch 수행
- 없으면 데이터 파일에서 블록을 가져와 database buffer cache에 캐싱 후 fetch 수행
- database buffer cache에 캐싱된 블록이 존재 유무 검사
- fetch
- SELECT문만 수행
- 블록에서 원하는 데이터만 추출