본문 바로가기
공부/SQL

[친절한 SQL 튜닝] 1장 - Library Cache / SQL 최적화 과정 / Soft, Hard Parsing / 바인드 변수

by thegreatjy 2025. 7. 28.
728x90

Library Cache

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

 

SQL 최적화 과정

  1. SQL 파싱
    • SQL 파서가 수행
    • 파싱 트리 생성 - Syntax 검사 (문법 검사) - Semantic 검사 (권한, 존재 여부 검사)
  2. SQL 최적화
    • 옵티마이저가 수행
    • 다양한 실행 경로를 생성, 비교하여 가장 효율적인 경로 1개를 선택
  3. 로우 코드 생성
    • row-code 생성기가 수행
    • 실행 경로를 실제 수행 가능한 코드, 프로시저로 포맷팅

Soft, Hard Parsing

  • SQL 캐싱 여부에 따라 soft, hard parsing 사용
  • hard parsing은 cpu를 많이 사용한다.

 

바인드 변수의 중요성

  • 프로시저, 사용자 정의 함수와 다르게 SQL 구문은 이름이 없다. 전체 SQL 텍스트가 이름의 역할을 한다.
  • 최적화 과정을 거쳐 동적으로 생성한 내부 프로시저를 Library Cache에 저장했다가 여러 사용자가 공유, 재사용한다.
  • 바인드 변수를 사용하여 파라미터 driven 방식으로 SQL 작성하는 것이 효율적이다.
  • 이럴 경우 하드 파싱은 최초 1번 수행되고, 캐싱된 SQL을 여러 번 재사용한다.
728x90