oracle 等待事件SQL*Net message to client

发布时间 2023-04-24 15:41:28作者: 蚌壳里夜有多长

Troubleshooting Waits for 'SQL*Net message to client' and 'SQL*Net more data to client' Events from a Performance Perspective (Doc ID 1404526.1)

什么是“SQL*Net message to client”和“SQL*Net more data to client”事件?

等待'SQL*Net message to client'发生在服务进程发送数据或消息给客户端并等待回复的时候。等待所花费的时间是等待TCP(透明网络基板)响应所花费的时间。这种等待通常被认为是空闲等待事件,因为服务器进程正在等待其他响应。就调优而言,如果单个等待时间很高,则可能无法在服务器上进行改进,而是在其他地方进行改进。如果总等待时间很长,但单个等待时间很短,那么等待可能是由于收集数据的方式(即太多的往返)。



对于“SQL*Net更多数据到客户端”事件等待,Oracle使用SDU(会话数据单元)写入SDU缓冲区,SDU缓冲区写入TCP套接字缓冲区。如果数据大于会话数据单元的初始大小,则需要发送多个数据块。如果有更多的数据要发送,那么在每批发送之后,会话将等待'SQL*Net更多数据到客户端'等待事件。