v$session的來源

kuqlan發表於2012-07-19

今天在研究enqueueresourcelock等的關係時透過

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章