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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/40239/viewspace-620890/