SQL Net message from client 事件產(chǎn)生的原因分析
查看數(shù)據(jù)庫等待事件時,發(fā)現(xiàn)SQL* Net message from client 等待時間最長,其實這個是oracle空閑等待時間,只要網(wǎng)絡沒有問題,可以不用考略這個wait。
下面是參考文檔:
1.對于一個session來說,每時每刻都在wait 的狀態(tài)。
WAIT FOR IO / WAIT FOR CPU / WAIT FOR LATCH /WAIT FOR ...
這一點你可以Query v$session_wait,總有data.
2.對于Server process來說,但它處理完所有需要處理的東西之后,它就進入另一個WAIT, SQL* Net message from client ,等待著Cilent發(fā)來信息讓它處理,而我們把這種wait叫做 ildel event,并不代表真正的loading
3.舉一個例子,你在工作,比如說1:00-1:30在檢查DB狀態(tài),1:30 - 2:00在讀文檔。但是,有時候你沒什么事做,這時候老板問你在干嗎,你就會說,我在等待任務呢,實際上是在休息, 就相當于你wait for " 任務from老板“,事實上是在休息,也就是沒有l(wèi)oading.
4.當然也有其他情況,比如,你在座位上休息 (wait for "任務 from老板“ ) ,本來應該是idle的。但是過一會,你老板跑來,暴跳如雷:“我剛才想叫你出去買咖啡,怎么打了半天電話也沒人接“,你一查,原來是分機沒接好。這種情況下的 (wait for "任務 from老板“ ) 就不正常了。相 對應的Oracle里的就是網(wǎng)絡不暢,Client想發(fā)信息給Server process,結(jié)果不成功,而Server process一直是wait for SQL*Net message from client .
5.結(jié)論, 只要網(wǎng)絡沒問題。SQL*Net message from client 這個wait不用管。
