1. 개요

1) 'Network'과 관련된 대기이벤트

1SQL*Net message from/to client
2SQL*Net more data from/to client
3SQL*Net message from/to dblink
4SQL*Net more data from/to dblink

2) 설명

  • 이 이벤트들은 대부분 Idle 이벤트들로 취급되어, 성능문제를 분석할 때 제외하는 경우가 많음.
  • 하지만 특정 상황에서 이 이벤트들이 성능저하원인 분석에 있어서 결정적 단서 제공하는 경우 종종 발생함.

2. 발생원인

1) 'Network' 속도가 느린 경우

  • 만약 이 이벤트 대기시간이 불필요하게 높다면, 'Network' 속도 의심 필요.
  • 또한, RAC로 구성된 환경에서 gc와 관련된 평균 대기시간이 지나치게 높게 나온다면, 'Network' 속도 점검 필요함.
  • RAC에서의 캐시동기화는 기본적으로 'Network'을 통해 이루어지기 때문에, 'Network' 구성에 문제가 있을 경우 성능과 직결됨.

2) SQL 실행회수(Execute Count)가 불필요하게 높은 경우

  • 실행회수가 과다한 경우, 클라이언트와 DBMS 간의 'Network' 통신이 빈번해지고, 이로 인해 대기시간 증가함.
  • 이 경우 불필요한 실행회수에 의해 시스템 저하가 발생되는지 의심해야 함.

3) 어플리케이션 구현방식에 문제가 있는 경우

  • 어플리케이션 구현방식에 문제가 있어 DBMS와 접속을 유지한 채 불필요하게 대기하는 시간이 많을 경우, 이 대기시간이 높게 나타남.
  • 예를들어, 화면상에 설계된 레코드 수가 20건일 경우, 특정 필드에서 추가 계산을 하는 무거운 로직이 있을 경우, 이를 계산하기 위해 fetch를 빠르게 못하게 되고 이로 인해 대기시간이 증가함.
  • 그러므로, 이 이벤트가 보일 경우, 그 원인을 찾아 해결을 해야 함.

문서에 대하여