10G V$SESSION
10G 中V$SESSION 的變化:
在一起,我們需要聯合v$session和v$session_wait試圖來檢視某個session在等待事件。
SQL> SELECT s.sid, w.state, w.event, w.seconds_in_wait siw,
2 s.sql_address, s.sql_hash_value hash_value, w.p1, w.p2, w.p3
3 FROM v$session s, v$session_wait w
4 WHERE s.sid = w.sid
5 AND s.sid = 154;
到了10G,主要檢視V$SESSION就完全可以知道session在等待什麼:
SQL> SELECT sid, state, event, seconds_in_wait siw,
2 sql_address, sql_hash_value hash_value, p1, p2, p3
3 FROM v$session
4 WHERE sid = 154;
SID STATE EVENT SIW SQL_ADDRESS HASH_VALUE P1 P2 P3
--- ------- ----------------------- --- ---------------- ---------- --- ---- ---
154 WAITING db file sequential read 1 000000038551E820 3625097388 4 9813 1
注意以上兩個sql的欄位是一樣,但僅僅是對V$SESSION做了查詢。
如果需要檢視事務是否被BLOCKER,以前是需要聯合V$SESSION和V$LOCK,
select
(select username from v$session where sid=a.sid) blocker,
a.sid,
' is blocking ',
(select username from v$session where sid=b.sid) blockee,
b.sid
from v$lock a, v$lock b
where a.block = 1
and b.request > 0
and a.id1 = b.id1
and a.id2 = b.id2
到了10G,多了blocking_session 和 blocking_session_status欄位,可以知道是否被阻塞。如果blocking_session_status欄位是VALID,那一個有效的SID會出現在blocking_session 欄位。
SQL> select sid, sql_id, PREV_SQL_ID , BLOCKING_SESSION_STATUS , BLOCKING_SESSION ,WAIT_CLASS_ID,SECONDS_IN_WAIT ,WAIT_CLASS from v$session where
2 username='KONG';
SID SQL_ID PREV_SQL_ID BLOCKING_SESSION_STATUS BLOCKING_SESSION WAIT_CLASS_ID SECONDS_IN_WAIT WAIT_CLASS
---------- ------------- ------------- --------------------------------- ---------------- ------------- --------------- ----------------------------------------------------------------
290 0hcsvq77pq2a8 dyk4dprp70d74 VALID 300 4217450380 118 Application
300 0hcsvq77pq2a8 NO HOLDER 2723168908 124 Idle
可以看到290 的程式被300的程式阻塞。
在以前如果想要查詢某個session執行了那個sql語句,那需要用兩個欄位來查詢: HASH_VALUE和ADDRESS。現在只有一個SQL_ID就可以了。
SQL> select sql_text from v$sqltext st, v$session s
2 where (st.sql_id = s.sql_id ) and s.sid=300;
SQL_TEXT
----------------------------------------------------------------
select count(*) from t2
生活簡單就是美。
-THE END-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/40239/viewspace-620890/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- V$SESSIONSession
- 【Oracle】-【v$session】v$session的SNIPED狀態OracleSession
- session和v$session說明Session
- v session_wait v session_event v system_eventSessionAI
- v$session_event , v$system_event , v$session_waitSessionAI
- 【SESSION】v$session and v$license 中sessions_current 的區別Session
- v$session_wait和v$session_event檢視SessionAI
- 10.17 V$SESSIONSession
- V$SESSION COMMANDSession
- v$Session詳解Session
- v$session 檢視Session
- v$session的blocking_session含義SessionBloC
- 幾個檢視 v$mystat v$systata v$sessionSession
- v$action_session_historySession
- V$SESSION_LONGOPSSessionGo
- v$session的解釋Session
- v$session的來源Session
- v$session中的serverSessionServer
- V$SESSION_WAITSessionAI
- v$session表的妙用Session
- V$session 表的妙用Session
- 幾個重要檢視(V$SYSTEM_EVENT V$SESSION_EVENT V$SESSION_WAIT)SessionAI
- 10.21 V$SESSION_EVENTSession
- 【會話】V$SESSION檢視會話Session
- [轉] V$session 表的妙用Session
- Oracle V$SESSION_WAITOracleSessionAI
- V$session 表的妙用^_^(轉)Session
- V$SESSION_LONGOPS bugSessionGo
- Oracle 10G V$ViewsOracle 10gView
- V$SESSION記錄的BLOCKING_SESSION錯誤SessionBloC
- v$process和v$session中欄位解釋Session
- v$session之小測試(一)_與v$lockSession
- v$session之小測試(二)_與v$sqlSessionSQL
- 理解V$OPEN_CURSOR, V$SESSION_CACHED_CURSORSession
- True Session Wait Activity in Oracle 10g[zt]SessionAIOracle 10g
- (轉):學習Oracle動態效能表-(9)-V$SESSION_WAIT,V$SESSION_EVENTOracleSessionAI
- 10.18 V$SESSION_BLOCKERSSessionBloC
- 10.25 V$SESSION_WAITSessionAI