본문 바로가기
DATABASE/TUNNING

Parsing

by YUNZZANG 2024. 5. 10.
728x90
parsing 이란?
 
parsing 과정은 크게 3가지로 나눌 수 있다.
 
syntax 검사
semantic 검사
shared pool 검사
 
syntax 검사는 구문에 오류가 있는지 확인하는 작업이다.
띄어쓰기를 했는지 안했는지,오타는 없는 지 등을 확인한다.
 
semantic 검사는 데이터 유형이나 테이블 컬럼등 좀 더 포괄적인 개념에서 검사를 하는 것이다
 
shared pool 검사는 크게 두가지로 나뉜다
 
soft parsing과 hard parsing.
 
SQL 쿼리를 날렸을 때 전에 날렸던 기록이 남아있는게 확인이 되면 바로 실행단계 execute 로 간다.
이것을 soft parsing 이라고 하는데 , 반대로 확인이 안되면 실행계획을 여러게 세우는 optimizer 단계를 거쳐서 여러개의 실행계획중에 최적의 계획 하나를 고르는 단계, row source generation를 거쳐 실행을 하게 된다.
hardparsing 을 거치게 되면 CPU 나 자원을 사용함에 따라 성능에 문제가 생긴다.
그래서 shared pool 안에 library cache에 캐싱해놓고 사용하면 나중에 또 SQL 문장을 실행하였을 때 optimizer 과정을 거치지않아도 바로 실행할 수 있게된다.
여기서 걱정이 되는 것은 많은 데이터들이 캐싱되면 그만큼 자원상으로 문제가 생길거라고 생각하는데,  library cache는 LRU 알고리즘에 의해서 자주 쓰지 않는 내용을 disk file 로 보내고 자주쓰는것만 library cache 에 남게되는 구조로 되어있다.
 
 

'DATABASE > TUNNING' 카테고리의 다른 글

속도 count  (0) 2024.05.30
audit 파일 삭제  (0) 2024.04.02
사전파티션 통계정보  (0) 2023.04.12
통계정보 UNLOCK SQL  (0) 2023.04.12
import 시 자동통계수집 안하는법  (0) 2023.04.12

댓글