이것저것
친절한 SQL 튜닝 - 1.2 SQL 공유 및 재사용 본문
소프트파싱 vs 하드파싱
소프트파싱 : SQL을 캐시에서 찾아 곧바로 실행단계로 넘어가는 것
하드파싱 : 캐시에서 찾는데 실패해 최적화 및 로우 소스 생성 단계까지 모두 거치는 것
(캐시에서 찾으면 곧바로 실행 단계로 넘어갈 수 있음)
Library Cache : SQL 파싱, 최적화, 로우 소스 생성 과정을 거쳐 생성한 내부 프로시저를 반복 재사용할 수 있도록 캐싱해 두는 메모리 공간
바인드 변수
라이브러리 캐시에서 SQL을 찾기 위해 사용하는 키 값은 'SQL문 그 자체'
select * from emp where empno=7000;
SELECT * FROM EMP WHERE EMPNO=7000;
=> 모두 다른 SQ
의미적으로는 같지만, 실행할 때 각각 최적화를 진행하고, 라이브러리 캐시에서 별도 공간 사용
바인드 변수를 사용 안하는 상태에서 쿼리가 무수히 발생할 경우, 라이브러리 캐시에 경합 발생 (CPU 사용률 증가) => 동시다발적으로 SQL 하드파싱
바인드 변수를 사용할 경우 하드파싱은 최초 한번만 일어나고, 캐싱된 SQL을 공유 가능하다.
'친절한 SQL 튜닝' 카테고리의 다른 글
친절한 SQL 튜닝 - 3.1 테이블 액세스 최소화 (0) | 2021.05.12 |
---|---|
친절한 SQL 튜닝 - 2.3 인덱스 확장기능 사용법 (0) | 2021.04.28 |
친절한 SQL 튜닝 - 2.2 인덱스 기본 사용법 (0) | 2021.04.17 |
친절한 SQL 튜닝 - 2.1 인덱스 구조 및 탐색 (0) | 2021.03.09 |
친절한 SQL 튜닝 - 1.3 데이터 저장 구조 및 I/O 메커니즘 (0) | 2021.02.17 |
Comments