일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- DBMS
- Inside Of Me
- I'm fine thank you
- 오라클 아키텍처
- 개발자
- 스위트라떼
- 6학년 8반 1분단
- 악보
- IT
- 신입
- 아이유
- DBMS 구성요소
- 기타
- 천공의 시간
- 장범준
- 말 더듬
- index
- 러블리즈
- oracle
- 봄 사랑 벚꽃 말고
- 니가 참 좋아
- db
- 오라클
- 슬픔의 후에
- 데이터베이스
- 핑거스타일
- SQL 처리
- nginx
- 인덱스
- 레이디스코드
취미로 음악을 하는 개발자
[ORACLE] SQL문 처리 과정 본문
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에 일정 기간 데이터를 유지하고 이 때, 사용자가 데이터를 요구하면
데이터 파일을 읽지 않고 캐시된 데이터를 읽어서 빠르게 결과를 보냄
출처
'공대인 > DB' 카테고리의 다른 글
[ORACLE] 실행 계획에 의한 조인의 종류 (0) | 2021.05.17 |
---|---|
[ORACLE] 인덱스(INDEX) (0) | 2021.03.06 |
[ORACLE] DBMS 구성요소 (0) | 2021.02.28 |
DBMS란? (0) | 2021.02.28 |