v$session的來源
今天在研究enqueue、resource、lock等的關係時透過
select * from v$fixed_view_definition
where view_name='GV$LOCK';
找出定義,如下:
select s.inst_id,
l.laddr,
l.kaddr,
s.ksusenum,
r.ksqrsidt,
r.ksqrsid1,
r.ksqrsid2,
l.lmode,
l.request,
l.ctime,
decode(l.lmode, 0, 0, l.block)
from l, x$ksuse s, x$ksqrs r
where l.saddr = s.addr
and l.raddr = r.addr
v$_lock可能代表LOCK而 x$ksqrs r代表的是Resource,那麼x$ksuse又是代表什麼呢?
一盤摸索後發現她原來是v$session的的根源,對GV$SESSION進行定義查詢:
select * from v$fixed_view_definition
where view_name='GV$SESSION'
[@more@]格式化後的查詢結果:
select s.inst_id,
s.addr,
s.indx,
s.ksuseser,
s.ksuudses,
s.ksusepro,
s.ksuudlui,
s.ksuudlna,
s.ksuudoct,
s.ksusesow,
decode(s.ksusetrn, hextoraw('00'), null, s.ksusetrn),
decode(s.ksqpswat, hextoraw('00'), null, s.ksqpswat),
decode(bitand(s.ksuseidl, 11),
1,
'ACTIVE',
0,
decode(bitand(s.ksuseflg, 4096), 0, 'INACTIVE', 'CACHED'),
2,
'SNIPED',
3,
'SNIPED',
'KILLED'),
decode(s.ksspatyp, 1, 'DEDICATED', 2, 'SHARED', 3, 'PSEUDO', 'NONE'),
s.ksuudsid,
s.ksuudsna,
s.ksuseunm,
s.ksusepid,
s.ksusemnm,
s.ksusemnp,
s.ksusetid,
s.ksusepnm,
decode(bitand(s.ksuseflg, 19),
17,
'BACKGROUND',
1,
'USER',
2,
'RECURSIVE',
'?'),
s.ksusesql,
s.ksusesqh,
s.ksusesqi,
decode(s.ksusesch, 65535, to_number(null), s.ksusesch),
s.ksusepsq,
s.ksusepha,
s.ksusepsi,
decode(s.ksusepch, 65535, to_number(null), s.ksusepch),
decode(s.ksusepeo, 0, to_number(null), s.ksusepeo),
decode(s.ksusepeo, 0, to_number(null), s.ksusepes),
decode(s.ksusepco, 0, to_number(null), s.ksusepco),
decode(s.ksusepco, 0, to_number(null), s.ksusepcs),
s.ksuseapp,
s.ksuseaph,
s.ksuseact,
s.ksuseach,
s.ksusecli,
s.ksusefix,
s.ksuseobj,
s.ksusefil,
s.ksuseblk,
s.ksuseslt,
s.ksuseltm,
s.ksusectm,
decode(bitand(s.ksusepxopt, 12), 0, 'NO', 'YES'),
decode(s.ksuseft,
2,
'SESSION',
4,
'SELECT',
8,
'TRANSACTIONAL',
'NONE'),
decode(s.ksusefm, 1, 'BASIC', 2, 'PRECONNECT', 4, 'PREPARSE', 'NONE'),
decode(s.ksusefs, 1, 'YES', 'NO'),
s.ksusegrp,
decode(bitand(s.ksusepxopt, 4),
4,
'ENABLED',
decode(bitand(s.ksusepxopt, 8), 8, 'FORCED', 'DISABLED')),
decode(bitand(s.ksusepxopt, 2),
2,
'FORCED',
decode(bitand(s.ksusepxopt, 1), 1, 'DISABLED', 'ENABLED')),
decode(bitand(s.ksusepxopt, 32),
32,
'FORCED',
decode(bitand(s.ksusepxopt, 16), 16, 'DISABLED', 'ENABLED')),
s.ksusecqd,
s.ksuseclid,
decode(s.ksuseblocker,
4294967295,
'UNKNOWN',
4294967294,
'UNKNOWN',
4294967293,
'UNKNOWN',
4294967292,
'NO HOLDER',
4294967291,
'NOT IN WAIT',
'VALID'),
decode(s.ksuseblocker,
4294967295,
to_number(null),
4294967294,
to_number(null),
4294967293,
to_number(null),
4294967292,
to_number(null),
4294967291,
to_number(null),
bitand(s.ksuseblocker, 2147418112) / 65536),
decode(s.ksuseblocker,
4294967295,
to_number(null),
4294967294,
to_number(null),
4294967293,
to_number(null),
4294967292,
to_number(null),
4294967291,
to_number(null),
bitand(s.ksuseblocker, 65535)),
s.ksuseseq,
s.ksuseopc,
e.kslednam,
e.ksledp1,
s.ksusep1,
s.ksusep1r,
e.ksledp2,
s.ksusep2,
s.ksusep2r,
e.ksledp3,
s.ksusep3,
s.ksusep3r,
e.ksledclassid,
e.ksledclass#,
e.ksledclass,
decode(s.ksusetim,
0,
0,
-1,
-1,
-2,
-2,
decode(round(s.ksusetim / 10000),
0,
-1,
round(s.ksusetim / 10000))),
s.ksusewtm,
decode(s.ksusetim,
0,
'WAITING',
-2,
'WAITED UNKNOWN TIME',
-1,
'WAITED SHORT TIME',
decode(round(s.ksusetim / 10000),
0,
'WAITED SHORT TIME',
'WAITED KNOWN TIME')),
s.ksusesvc,
decode(bitand(s.ksuseflg2, 32), 32, 'ENABLED', 'DISABLED'),
decode(bitand(s.ksuseflg2, 64), 64, 'TRUE', 'FALSE'),
decode(bitand(s.ksuseflg2, 128), 128, 'TRUE', 'FALSE'),
s.ksuseecid
from x$ksuse s, x$ksled e
where bitand(s.ksspaflg, 1) != 0
and bitand(s.ksuseflg, 1) != 0
and s.ksuseopc = e.indx
那 x$ksled又是什麼呢?她對應的效能檢視GV$EVENT_NAME ,即v$ $EVENT_NAME,在如上的關聯關係中s.ksuseopc又是代表什麼呢?她就是v$session中的EVENT#
可以進一步進行如下定義查詢:
select * from v$fixed_view_definition
where view_name='GV$EVENT_NAME'
查詢結果:
select inst_id,
indx,
ksledhash,
kslednam,
ksledp1,
ksledp2,
ksledp3,
ksledclassid,
ksledclass#,
ksledclass
from x$ksled
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-1058847/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Oracle】-【v$session】v$session的SNIPED狀態OracleSession
- V$SESSIONSession
- 【SESSION】v$session and v$license 中sessions_current 的區別Session
- v$session的解釋Session
- v$session中的serverSessionServer
- v$session表的妙用Session
- V$session 表的妙用Session
- v$session的blocking_session含義SessionBloC
- session和v$session說明Session
- v session_wait v session_event v system_eventSessionAI
- v$session_event , v$system_event , v$session_waitSessionAI
- 通過11G的V$SESSION來分析鎖阻塞關係Session
- [轉] V$session 表的妙用Session
- V$session 表的妙用^_^(轉)Session
- v$session_wait和v$session_event檢視SessionAI
- V$SESSION記錄的BLOCKING_SESSION錯誤SessionBloC
- 10.17 V$SESSIONSession
- V$SESSION COMMANDSession
- v$Session詳解Session
- v$session 檢視Session
- Oracle V$SESSION中的常用列OracleSession
- v$session command 的含義Session
- V$SESSION的SID&SERIAL#Session
- v$session的一點認知Session
- 關於v$process與v$session中process的理解Session
- 幾個檢視 v$mystat v$systata v$sessionSession
- v$action_session_historySession
- V$SESSION_LONGOPSSessionGo
- V$SESSION_WAITSessionAI
- 10G V$SESSIONSession
- 幾個重要檢視(V$SYSTEM_EVENT V$SESSION_EVENT V$SESSION_WAIT)SessionAI
- kill session V$SESSION標記為KILLED 的2種情況Session
- 11g v$session的新增列Session
- V$session 檢視的小運用Session
- 使用v$session_longops來監控rman備份進度SessionGo
- 獲取v$latch資料來源實驗
- v$session - 你看到的event真的是session當前的等待事件麼?Session事件
- v$session_wait_session的等待情況及熱點塊SessionAI