728x90
Library Cache
- 내부 프로시저를 반복 재사용할 수 있도록 캐싱해두는 메모리 공간
- SGA (System Global Area): 서버 프로세스와 백그라운드 프로세스가 공통으로 액세스하는 데이터, 제어구조를 캐싱하는 메모리 공간

SQL 최적화 과정
- SQL 파싱
- SQL 파서가 수행
- 파싱 트리 생성 - Syntax 검사 (문법 검사) - Semantic 검사 (권한, 존재 여부 검사)
- SQL 최적화
- 옵티마이저가 수행
- 다양한 실행 경로를 생성, 비교하여 가장 효율적인 경로 1개를 선택
- 로우 코드 생성
- row-code 생성기가 수행
- 실행 경로를 실제 수행 가능한 코드, 프로시저로 포맷팅
Soft, Hard Parsing
- SQL 캐싱 여부에 따라 soft, hard parsing 사용
- hard parsing은 cpu를 많이 사용한다.

바인드 변수의 중요성
- 프로시저, 사용자 정의 함수와 다르게 SQL 구문은 이름이 없다. 전체 SQL 텍스트가 이름의 역할을 한다.
- 최적화 과정을 거쳐 동적으로 생성한 내부 프로시저를 Library Cache에 저장했다가 여러 사용자가 공유, 재사용한다.
- 바인드 변수를 사용하여 파라미터 driven 방식으로 SQL 작성하는 것이 효율적이다.
- 이럴 경우 하드 파싱은 최초 1번 수행되고, 캐싱된 SQL을 여러 번 재사용한다.
728x90
'공부 > SQL' 카테고리의 다른 글
| MYSQL 코테 보기 전, 알아두어야 할 지식 (2) | 2024.09.23 |
|---|---|
| 프로그래머스 SQL 고득점 Kit - GROUP BY; MySQL (1) | 2022.03.03 |
| SQL Zoo - More JOIN operations 문제 풀이 (1) | 2022.03.02 |
| 프로그래머스 SQL 고득점 Kit - Join; MySQL (0) | 2022.03.02 |