[Oracle] Non-Idle 대기 이벤트

prana·2024년 10월 1일
0

ORACLE

목록 보기
17/96
post-thumbnail

시스템의 성능과 응답 시간에 직접적인 영향을 주는 대기 이벤트로,
실제로 작업을 수행하는 동안 발생하는 대기 현상을 의미한다.

1. db file sequential read

  • 인덱스를 통해, 테이블의 특정 행을 읽을 때 발생
  • 주로 인덱스 스캔이나, ROWID를 통한 액세스 시 발생, 하나의 블록을 읽는 작업이다.

2. db file scattered read

  • 여러 개의 연속된 블록을 동시에 읽을 때 발생하는 대기 이벤트로, 주로 테이블 풀 스캔 시 발생한다.
  • 원인: 테이블의 대용량 데이터 스캔이나, 적절한 인덱스가 없을 때

3. buffer busy waits

  • 프로세스가 필요한 버퍼를 다른 프로세스가 사용 중이거나, 버퍼가 디스크에서 아직 읽혀오지 않은 경우 발생하는 대기 이벤트이다.
  • 원인: 동시에 같은 데이터 블록에 접근하려는 프로세스가 많을 때 발생

4. log file sync

  • 트랜잭션이 커밋될 때, 로그 버퍼의 내용을 로그 파일에 기록하는 작업을 기다릴 때 발생하는 대기 이벤트이다.
  • 원인: 많은 커밋 또는 롤백 작업이 동시에 발생, 로그 파일에 대한 I/O 성능이 낮을 때 발생

5. latch free

  • 래치가 사용 중일 때 다른 프로세스가 해당 래치를 사용하려 대기하는 경우, 발생하는 대기 이벤트
  • 원인: 래치 경합이 심할 때 또는 래치 사용이 빈번할 때 발생

6. enq: TX - row lock contention

  • 두 트랜잭션이 동일한 데이터 행에 대한 변경을 시도할 때 발생하는 대기 이벤트
  • 원인: 데이터 잠금 경합이 발생할 때 나타나며, 특히 동시 업데이트가 많을 때 발생한다.

7. log file parallel write

  • 로그 파일에 대한 병렬 쓰기 작업을 기다릴 때 발생하는 대기 이벤트이다.
  • 원인: 많은 양의 데이터 변경 작업이 발생하거나, 로그 파일에 대한 I/P 성능이 낮을 때 발생

8. free buffer waits

  • 데이터 블록을 읽기 위해, 사용 가능한 빈 버퍼를 찾는 데 시간이 걸릴 때 발생하는 대기 이벤트
  • 원인: 많은 양의 데이터 변경 작업이 발생하거나, 로그 파일에 대한 I/O 성능이 낮아 데이터 변경 내용의 체크 포인트 처리가 지연되는 경우 발생
  • DBWR(DB Writer) 프로세스가 적시에 변경된 블록을 디스크에 기록하지 못하는 경우도 있다.

해결방안

  • DB_CACHE_SIZE 파라미터를 증가시켜 버퍼 캐시의 크기를 늘립니다.
  • I/O 성능을 개선하여 로그 파일 쓰기 속도를 높입니다.
  • 데이터베이스에서 체크포인트 발생 빈도를 조절하거나, DBWR 프로세스의 수를 늘려주면 도움이 될 수 있습니다.

0개의 댓글