SQL*Net message from client 事件產生的原因分析

來源:互聯網
上載者:User
SQL*Net message from client 事件產生的原因分析 今天同事運行一個程式,修改表的內容,但運行一半總是掛起,查詢資料庫看有什麼在等待,查詢v$session_waitSELECT S.SID,
       S.SERIAL#,
       S.USERNAME,
       S.STATUS,
       S.MACHINE,
       S.PROGRAM,
       S.MODULE,
       A.SQL_TEXT
  FROM V$SESSION S,
       V$SQLAREA A
WHERE S.USERNAME IS NOT NULL
   AND S.SQL_ADDRESS = A.ADDRESS看見同事那個會話在那掛起,看見 SQL* Net message from client 等待時間最長,其實這個是oracle空閑等待時間,只要網路沒有問題,可以不用考略這個wait。後來同事修改了下程式通過了,他是因為執行了大查詢,而無反應。下面是參考文檔: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,並不代表真正的loading

3.舉一個例子,你在工作,比如說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不用管。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.