SQL Net message from client 事件產生的原因分析
阿新 • • 發佈:2018-12-20
1.對於一個session來說,每時每刻都在wait 的狀態。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發來資訊讓它處理,而我們把這種wait叫做ildel event,並不代表真正的loading3.舉一個例子,你在工作,比如說1:00-1:30在檢查DB狀態,1:30 - 2:00在讀文件。但是,有時候你沒什麼事做,這時候老闆問你在幹嗎,你就會說,我在等待任務呢,實際上是在休息,就相當於你wait for "任務from老闆“,事實上是在休息,也就是沒有loading.4.當然也有其他情況,比如,你在座位上休息 (wait for "任務from老闆“ ) ,本來應該是idle的。但是過一會,你老闆跑來,暴跳如雷:“我剛才想叫你出去買咖啡,怎麼打了半天電話也沒人接“,你一查,原來是分機沒接好。這種情況下的 (wait for "任務from 老闆“ ) 就不正常了。相對應的Oracle裡的就是網路不暢,Client想發信息給Server process,結果不成功,而Server process一直是wait for SQL*Net message from client .5.結論,只要網路沒問題。SQL*Net message from client 這個wait不用管。