latch free

  • Latch를 획득하는데 실패한 후 Latch를 획득할 때까지 기다리는 이벤트
  • 프로세스가 willing-to-wait 모드로 _SPIN_COUNT 만큼 스핀을 수행하고도 래치획득에 실패하여 슬립(sleep)한다는 것을 의미
  • Sping을 수행하는 경우에는 "대기" 상태이지만 CPU를 사용
    • Active Wait/Busy Wait
    • latch:cache buffers chains Event 발생 시 높은 CPU 사용률
  • 래치는 속성상 획득 횟수와 대기 횟수가 매우 높음
  • 대기시간(TIME_WAITED)이 가장 변별력 있는 경합 여부 판단 기준
  • Oracle 10g부터는 Event 명 세분화
    • 중요한 래치들에 대해서는 별도의 대기 이벤트 명 부여
    • 그 외는 latch free 대기 이벤트
    • latch: cache buffers chains
    • latch: shared pool
    • latch: library cache
    • ...
    • latch free
  • V$LATCH : Latch 획득 통계, Latch 종류 당 하나 (래치의 종류별 통계값)
    • GETS : willing-to-wait 모드에서 슬립 하기 전에 래치 요청 횟수
    • MISSES : willing-to-wait 모드에서 슬립 하기 전에 래치 획득 실패 횟수
    • SPIN_GETS : willing-to-wait 모드에서 슬립 하기 전의 스핀단계에서의 래치 획득 성공 횟수
    • SLEEPS : willing-to-wait 모드에서의 슬립 횟수
    • IMMEDIATE_GETS : no-wait 모드에서 래치 획득 성공 횟수
    • IMMEDIATE_MISSES : no-wait 모드에서 래치 획득 실패 횟수
    • SLEEP1 ~ SLEEP4 : 1~3 회의 슬립횟수에 4회 이상의 슬립 횟수. 오라클 10gR2부터는 V$EVENT_HISTOGRAM 뷰로 대체
    • WAITERS_WORKED : posting에 의한 래치 획득 방식을 사용할 경우 세션이 깨어난 횟수. 10gR2부터는 사용되지 않음.
    • WAIT_TIME : 래치를 획득하기 위해 대기한 시간(microsecond 단위)
  • V$LATCH_PARENT : 부모 Latch 통계 (자식이 없는 부모만, 독립 래치, 부모 래치)
  • V$LATCH_CHILDREN : 자식 Latch 통계
  • V$LATCHHOLDER : Latch Holder 정보
  • V$LATCH_MISSES : Latch 획득 실패 정보 (래치 획득 실패가 발생한 오라클 커널 코드의 위치에 대한 정보를 제공)

문서에 대하여