취미로 음악을 하는 개발자

[ORACLE] SQL문 처리 과정 본문

공대인/DB

[ORACLE] SQL문 처리 과정

영월특별시 2021. 3. 6. 20:49
728x90

SQL문 처리 과정

사용자가 커맨드 상에서 DBMS 서버에 SQL문을 보내거나 프로그램을 통하여 SQL문을 보내면 DBMS는 다음과 같이 실행결과를 되돌려 준다

 

파스(Parse) -> 실행(Execute) -> 패치(Fetch)

 

1) 파스(Parse)

   - SQL문의 문법과 권한(시스템, 오브젝트) 체크

   - 옵티마이저가 실행계획 수립

   - 공유 메모리 영역에 저장

 

   * 옵티마이저

   : 원하는 데이터를 신속히 가져오기 위해 여러 가지 알고리즘과 통계치를 근거로 가장 빠른 실행 결로를 찾아주는

    역할을 하는 DBMS의 핵심 프로세스 중 하나로 규칙기반/비용기반 옵티마이저가 있다

 

  ㄴ규칙기반 옵티마이저는 미리 정해진 규칙에 근거하여 실행계획을 선택하고

    비용기반 옵티마이저는 데이터 사전에 정의되어있는 통계정보와 선택 가능한 접근 경로를 고려하여 실행계획을 선택

 

2) 실행(Execute)

   - 찾고자 하는 데이터가 SGA 내 데이터베이스 버퍼 캐시 내에 존재하는지 체크 후 존재하지 않으면 하드디스크 상에

     저장된 데이터 파일을 읽어 데이터베이스 버퍼 캐시에 저장

 

   * SGA(System Global Area)

   : DBMS에서 사용하는 메모리 영역으로 모든 사용자의 공통적인 정보와 데이터를 공유하기 위하여 사용

 

   * 데이터베이스 버퍼 캐시(이하 DB Buffer Cache)

   : 디스크의 데이터 파일로부터 읽어들인 데이터를 저장하는 메모리 영역으로,

     데이터를 임시적으로 보관하여 공유함으로써 디스크 I/O를 줄여 성능을 향상

 

3) 패치(Fetch)

   - DB Buffer Cache에 저장된 데이터를 읽어서 사용자에게 보내는 단계

   - 데이터를 보낸 후에도 DB Buffer Cache에 일정 기간 데이터를 유지하고 이 때, 사용자가 데이터를 요구하면

     데이터 파일을 읽지 않고 캐시된 데이터를 읽어서 빠르게 결과를 보냄

 

 

출처

DBMS의 이론과 실무 활용

'공대인 > DB' 카테고리의 다른 글

[ORACLE] 실행 계획에 의한 조인의 종류  (0) 2021.05.17
[ORACLE] 인덱스(INDEX)  (0) 2021.03.06
[ORACLE] DBMS 구성요소  (0) 2021.02.28
DBMS란?  (0) 2021.02.28
Comments