친절한 SQL 튜닝
친절한 SQL 튜닝 - 1.2 SQL 공유 및 재사용
nays111
2021. 1. 15. 23:07
소프트파싱 vs 하드파싱
소프트파싱 : SQL을 캐시에서 찾아 곧바로 실행단계로 넘어가는 것
하드파싱 : 캐시에서 찾는데 실패해 최적화 및 로우 소스 생성 단계까지 모두 거치는 것
(캐시에서 찾으면 곧바로 실행 단계로 넘어갈 수 있음)
Library Cache : SQL 파싱, 최적화, 로우 소스 생성 과정을 거쳐 생성한 내부 프로시저를 반복 재사용할 수 있도록 캐싱해 두는 메모리 공간
바인드 변수
라이브러리 캐시에서 SQL을 찾기 위해 사용하는 키 값은 'SQL문 그 자체'
select * from emp where empno=7000;
SELECT * FROM EMP WHERE EMPNO=7000;
=> 모두 다른 SQ
의미적으로는 같지만, 실행할 때 각각 최적화를 진행하고, 라이브러리 캐시에서 별도 공간 사용
바인드 변수를 사용 안하는 상태에서 쿼리가 무수히 발생할 경우, 라이브러리 캐시에 경합 발생 (CPU 사용률 증가) => 동시다발적으로 SQL 하드파싱
바인드 변수를 사용할 경우 하드파싱은 최초 한번만 일어나고, 캐싱된 SQL을 공유 가능하다.