본문 바로가기
Database

[24/365] 쿼리 Select & Update 과정(1)

by 알 수 없는 사용자 2022. 5. 23.

안녕하세요!!

오늘은 query process('select & update')에 대하여 이야기해 보도록 하겠습니다.

우선 본론으로 들어가기전에 이전에 설명을 한 메모리 구조에 대해서 

한번 더 리뷰 하면 좋을 것 같습니다.

 

https://btcd.tistory.com/60?category=927631 

 

[24/365]Oracle 메모리 구조

안녕하세요! BTC 24/365입니다!! 오늘부터는 특정 DB에 관련된 내용을 전달해볼 예정이며, 이번 게시글에서는 DB 시장 점유율 1위의 'Oracle'에 대해서 알아보도록 하겠습니다!! 목차 1. PGA 2. SGA 3. Backgro

btcd.tistory.com


1. Select process

가장 기본적인 'Select'의 process부터 을 알아보겠습니다!!

 

아래는 전반적인 process를 정리한 것입니다. 

 

'Select'는 비교적 간단한 process를 가집니다.

 

1. User가 'Select' SQL 입력

 

2. User / Server process 거쳐 parsing을 진행함

- 문법 검사 : SQL 문법에 대한 검사

- 의미 검사 : 테이블 이름이나 칼럼 이름 검사

- 권한 검사 : 해당 사용자가 이 테이블에 접근할 수 있는지 검사

 

(parsing에 대한 조금 더 구체적인 설명은 아래 글을 보시면 좋을 것 같습니다)

https://btcd.tistory.com/91?category=927631 

 

[24/365]Parsing의 정의와 종류

안녕하세요, BTC 24/365팀입니다!! 오늘은 Parsing에 대해서 알아보도록 하겠습니다. 내용 시작 전에 지난 게시글에서 언급한 SGA 구조에 대한 이해가 있으면 조금 더 이해가 빠를 것 같습니다!! https://

btcd.tistory.com

 

3. SQL로 요청한 databuffer cache있는 경우, 빠르게 datauser에게 반환

- 아래 그림은 위에서 소개한 process에서 DB buffer cache와 datafile 부분만 가져온 것입니다.

- 요청한 data가 buffer cache에 존재하는 경우 buffer cache에서 그대로 user에게 전달을 하게 됩니다.

 

 

4. SQL로 요청한 databuffer cache없는 경우, Datafile에서 가져와 반환한다

하지만, buffer cache에 data가 존재하지 않는 경우 디스크에서 물리적으로 데이터를 가져와 user에게 반환시킵니다.

- 물리적으로 data를 디스크에서 가져오기 때문에 그만큼의 I/O가 발생하게 됩니다.

 

 

*이때, data buffer chche에 data의 존재 유무를 결정짓는 것은 'LRU 알고리즘'입니다.(아래 글 참고하세요!!)

https://btcd.tistory.com/153?category=927631 

 

[24/365] LRU 알고리즘이란...?

안녕하세요!! 24/365입니다! 오늘은 'LRU 알고리즘'에 대해서 알아보도록 하겠습니다! 목차 1. LRU 알고리즘이란? 2. 어디에 사용되나요? 3. 데이터 버퍼 캐시 4. LRU 알고리즘의 원리 LRU 알고리즘이란? '

btcd.tistory.com

 

생각보다 글이 길어져 'update'에 대한 process는 다음 게시글에 설명하도록 하겠습니다!!

'Database' 카테고리의 다른 글

[24/365] 쿼리 Select & Update 과정(2)  (0) 2022.06.03
함수적 종속(Functional Dependency)  (0) 2022.05.30
이상 현상(Anomaly)이란?  (0) 2022.05.13
[24/365] LRU 알고리즘이란...?  (0) 2022.05.13
[24/365] Oracle DB 논리적 구조  (0) 2022.05.09

댓글