본문 바로가기
Database

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

by 알 수 없는 사용자 2022. 4. 22.

안녕하세요, BTC 24/365팀입니다!!
오늘은 Parsing에 대해서 알아보도록 하겠습니다.

내용 시작 전에
지난 게시글에서 언급한 SGA 구조에 대한 이해가 있으면
조금 더 이해가 빠를 것 같습니다!!

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

 

[Oracle]메모리 구조

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

btcd.tistory.com


목차


1. Parsing 이란?
2. Parsing의 순서
3. Soft Parsing 과 Hard Parsing의 차이


1. Parsing 이란?

'User'가 쿼리문을 실행시키면 DBMS가 요청받은 쿼리를 실행시키기 위해 하는 행위를 말합니다!
Parsing은 문법체크(Syntax check), 의미(Semantic check) & 권한체크를 진행합니다!
아래에서 조금 더 상세히 알아보도록 하겠습니다.

 

2. Parsing의 순서

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

위 화면을 보면 SQL 문법이 'SELECT'가 아니라 'SELEC'로
문법이 정확하지 않은 것을 확인할 수 있습니다.

이렇게 SQL의 문법을 확인하는 것이 '문법 검사'라 합니다.



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

위와 같이 SALARY라는 칼럼이 아닌
SALAR이라는 잘못된 칼럼을 수행했을 시 오류가
나타나는 것을 확인할 수 있습니다.



권한 검사 : 해당 사용자가 이 테이블을 조회할 수 있는지 검사

 

3. Soft Parsing과 Hard Parsing의 차이

SQL 문장 수행 유무에 따라 SoftHard parsing으로 나뉩니다!!

자세한 설명 전에 먼저 '실행계획'과에 대한
이해가 필요합니다!!



실행계획
쉽게 말해 '요청받은 SQL을 어떻게 처리를 할 것인가'에 대한 것입니다.

Optimizer
Optimizer는 위에서 설명한 실행계획을 생성해 줍니다.


Soft Parsing
SQL이 한 번이라도 수행된 상황이라면 사용된 SQL에 대한
실행계획을 그대로 가져와서 사용하는 것을 말합니다.

이 경우 optimizer가 새롭게 실행계획을 만들지 않아도 되기 때문에
SQL 수행 속도를 빠르게 한다는 특징이 있습니다.

이때!!!
아래 화면의 Shared Pool의 Library Cache에서
SQL이 수행됐는지 안됬는지 확인을 하게 됩니다.

SGA 메모리 구조


Hard Parsing
다음은 Hard Parsing입니다!
Soft Parsing과 반대겠죠??

이전에 실행되지 않은 SQL을 요청한 경우
위에서 설명한 optimizer가 실행계획을 새롭게 만드는 것을
Hard Parsing이라고 합니다.

이러한 경우는 SQL 수행 속도가 느려진다는 특징이 있습니다.

'Database' 카테고리의 다른 글

[24/365] 논리적 물리적 구조  (0) 2022.05.02
RDB에 대해서  (0) 2022.04.22
[24/365]Oracle 메모리 구조  (0) 2022.04.15
DB의 종류와 특징  (0) 2022.04.14
데이터베이스 개요  (0) 2022.04.08

댓글