대기 이벤트 = System API Call
SQL*Net messate from client
오라클 서버 프로세스가 사용자에게 결과를 전송하고 다음 Fetch Call이 올때까지 대기한 시간을 더한 값
서버로부터 데이터를 Fetch하고 클라이언트 내부적으로 많은 연산을 수행한 후에 다음 Fetch Call을 날리는 배치 프로그램에서 크게 나타남
SQL*Net message from client 대기는 Network 성능과는 직접적인 관련이 없다
SQL*Net messate to client
Server Process가 OS에서 Network Send API 요청을 하고 응답이 오기를 기다린다는 것을 의미
OS는 Server Process가 요청한 Data를 TCP Send Buffer에 넣는 것으로 일을 마치고 Server Process에게 응답을 보낸다. 즉, SQL*Net message to client 대기는 실제 Network 전송이 끝나기를 기다린다는 의미가 아니라 OS가 Send Buffer에 성공적으로 Data를 등록하기를 기다린다는 것을 의미한다
db file sequential read
Single Block Read 방식으로 디스크 블록을 읽을때 발생
SQL*Net more data to client
클라이언트에게 전송할 데이터가 남았는데 네트워크 부하때문에 바로 전송하지 못할때 발생
"more" 수식어가 붙는 경우에는 Data의 전송량이 커서 한번에 전송하지 않고 여러 번에 나누어서 한다는 것을 의미합니다. more가 붙은 경우에는 message가 아닌 "data"라는 용어가 사용된다는 것에 주의하세요. 가령 아주 긴 SQL 문장을 Oracle에 수행요청하는 경우 Oracle은 OS에 전송 요청을 하면 응답이 올 때까지 SQL*Net more data from client 이벤트를 대기합니다. 거꾸로 아주 큰 Data를 Client에게 보내주어야 하는 경우(LOB이 대표적인 경우) Oracle은 SQL*Net more data to client 이벤트를 대기합니다.
오라클 성능고도화
'튜닝' 카테고리의 다른 글
| DBMS_XPLAN 활용 (0) | 2016.12.23 |
|---|---|
| DBMS_MONITOR 활용 (특정 세션이나 모듈에 트레이스걸기) (0) | 2016.12.22 |
| TKPROF 사용 기본 (0) | 2016.12.22 |
| SQL Trace 위치 찾는 스크립트 (0) | 2016.12.22 |
| 실행계획 보기 힘든 환경에서 실행계획 보기 (0) | 2016.12.22 |