
- 서버 프로세스가 유휴 상태일 때 발생세스가 유휴 상태일 때 발생하는 대기 이벤트
- 데이터베이스가 특정 작업을 처리하기 전에, 외부 요인을 기다리는 상태를 나타내며, 성능 분석 시에는 주로 무시해도 되는 이벤트들이다.
- 이런 대기 이벤트는 SQL 처리 성능에 직접적인 영향을 주지 않기 때문에, 튜닝의 대상이 아니다.
1. SQL*Net message from client
- 클라이언트가 서버에 SQL문 또는, 데이터를 보낼 떄 서버가 클라이언트로부터 메시지를 기다리는 대기 이벤트이다.
특징: 주로 클라이언트가 서버에 데이터를 보내지 않거나, 사용자가 입력을 마치지 않았을 때 발생한다. 서버가 클라이언트의 요청을 기다리는 중인 유휴상태이다.
2. smon timer
- 시스템 모니터(SMON) 프로세스가 주기적으로 수행하는 작업을 기다리기 위한 타이머 대기
- SMON은 크래시 복구, 임시 세그먼트 해제, 미사용 공간 병합 등 작업을 처리한다.
- 특징: SMON이 특정 작업을 수행하기 전, 대기하는 시간이다. 작업이 주기적으로 실행될 때에만 발생한다.
3. pmon timer
- 프로세스 모니터(PMON) 프로세스가 주기적으로 실행되는 동안 대기하는 이벤트
- PMON은 비정상 종료된 세션의 리소스를 해제하고, 서버 프로세스를 정리하는 등의 역할을 한다.
- 특징: PMON이 수행할 작업이 없을 때 대기하는 상태
4. rdbms ipc message
- 여러 데이터베이스 인스턴스 간에 내부 통신을 위한 메시지를 대기하는 이벤트
- 주로 Oracle의 내부 프로세스 간 통신을 위한 대기 상태이다.
- 특징: 데이터베이스 프로세스 간 상호 통신에서 발생, 대부분 백그라운드에서 발생
5. wakeup time manager
- Oracle에서 타이머를 설정한 후, 해당 타이머가 만료될 때까지 대기하는 이벤트이다.
6. Queue Monitor Wait
- Queue Monitor(QMN) 프로세스가 대기 큐(queue)를 감시하는 동안 발생하는 대기 이벤트
- 큐는 비동기 작업을 처리하기 위한 메시징 메커니즘이다.
- 특징: 주로 Oracle Streams 와 같은 큐잉 메커니즘을 사용하는 시스템에서 발생
- 대기열에 새로운 작업이 들어오기를 기다리는 상태
정리
- Idle 대기 이벤트는 DB가 유휴 상태에서 발생하는 이벤트들이며, 성능 분석 시에는 주로 무시해도 된다. 이러한 이벤트는 데이터베이스 내부의 관리 작업이나 클라이언트 응답을 기다리는 상태에서 발생하며, SQL의 튜닝의 대상이 되지 않는다.