본문 바로가기

sql_tuning

Section3. 오라클 Wait Event 개요

728x90
반응형

[출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드]

Oracle Wait Event

  • 성능 및 운영 관리를 위해 알아야 할 가장 중요한 요소 중 하나
  • 오라클은 서버 프로세스 또는 백그라운드 프로세스가 DB의  CPU, Memory, Database File, I/O 등의 모든 자원을 엑세스 하고 이용하는 세부 단계별로 상세한 Wait Event(대기 이벤트) 를 발생
  • 오라클의 모든 성능 요소 및 자원 사용현황은 Wait Event 의 발생 정도에 따라 모니터링 가능함 

DB 내 문제점 진단과 분석을 위한 Wait Event

  • 인체 내의 각 기관별로 진단을 위한 다양한 증상 및 이에 대한 해결책을 발전시켜 왔듯이, 오라클은 DB 내의 거의 모든 세부 프로세스 절차에서 Wait Event를 의무적으로 발생시키는 성능 분석 Framework 를 발전시켜 옴

 

Wait Event는 오라클의 DB 성능 개선 노력의 산물 

  • 오라클의 Wait Event 종류는 모두 1100 가지가 넘음.
    • 오라클 내부에서 처리되는 거의 모든 프로세스 들은 각 단계별로 고유의 Wait Event 를 생성
    • 이는 Oracle 이 성능 및 시스템 문제 분석과 진단, 개선을 위해 얼마나 많은 공을 들이고 있는지를 알 수 있는 반증 

 

주요 Wait Event 들

  • wait event를 알기 위해서는 반드시 먼저 오라클의 Process, 메모리, 데이터베이스 파일들로 구성되는 내부처리 아키텍처를 이해해야 함.
  • 모든 Wait event 를 아는 것은 불가능 하며, 주요 Wait Event들을 이해하고 왜 이러한 Event들이 발생 할 수 밖에 없는지를 알아내는 것이 보다 중요.
유형 Event 명 Event 설명 
Disk I/O db file Sequential Read  Single block Access 시에 발생 (디스크에 Random I/O 수행 할 경우 발생)
일반적으로 OLTP 시스템에서 가장 많이 발생.
db file Scattered Read 디스크로부터 Full Scan 을 수행 할 경우 발생
자원 경합 

library Cache Latch Library cache 메모리에 접근하기 위해 Latch*를 얻을 경우 발생 
library Cache Lock Library cache 내의 특정 Object에 Lock 접근 할 때 발생 
log file sync 변경 log buffer를 log file에 반영하는 동안 발생
enqueue 주로 table 자체, 또는 table data의 lock 수행 시 발생
buffer busy wait buffer cache 내 동일 블록에 대한 동시 액세스 경합 
latch free 다양한 shared memory 영역에 대한 latch 

*Latch: library cache latch는 오라클 DB의 library cache 내부의 메모리 구조에 대한 동시 접근을 제어하는데 사용 되고, 그 중 Latch는 경량의 동기화 메커니즘으로, 매우 짧은 시간 동안 자원에 대한 접근을 제어 함

  • Library Cache Latch와 Library Cache Lock 의 차이점
    • Latch는 메모리 내부의 데이터 구조에 대한 빠르고 경량의 접근 제어를 제공함.
    • Lock은 DB 객체(ex>테이블, 뷰, 프로시져)에 대한 보다 장기적이고 무거운 접근 제어를 제공하며, 객체의 정의나 상태 변경을 관리 함.
    • 즉 두 메커니즘은 오라클 DB의 성능과 무결성을 유지하기 위해 중요한 역할을 함. 

 

Wait Event Class

 

728x90
반응형