SQL 실행을 보호하는 Lock

1. library cache lock

  • Library Cache 객체에 접근하거나 변경할 때 Library Cache 핸들에 대해 획득하는 락
  • 파싱 과정에서 Library Cache 객체의 Spec을 보호하기 위해 shared 모드로 library cache lock 획득, 파싱이 끝나면 library cache lock을 null모드로 변환
  • Spec 변경 작업(DDL)시나 pin획득 전에 반드시 획득

2. library cache pin

  • Library Cache 객체에 수행이나 변경할 때 Library Cache 객체에 대해 획득하는 락
  • 실행 작업시 Library Cache 객체의 실행 정보(Heap)를 보호하기 위해 실행 계획 생성시에는 exclusive 모드로 library cache pin을 획득
  • library cache lock 을 획득한 이후에 library cache 객체에 추가적인 작업이 필요할때 획득

3. library cache lock/pin 두개의 락을 이용하여 SQL커서와 하나의 논리적 오브젝트에 대해 여러 개의 LCO가 생성되는 경우 Library Cache 영역에 대한 접근성을 최대한 높일 수 있다.

문서에 대하여