It is, however, possible to find out which tables take part in GV$SESSION
view using the event 10046:
SQL ID: 80ztmgy196d94 Plan Hash: 643620770
select *
from
gv$session
call count cpu elapsed disk query
current rows
------- ------ -------- ---------- ---------- ---------- ----------
----------
Parse 1 0.00 0.03 0 0
0 0
Execute 1 0.00 0.00 0 0
0 0
Fetch 2 0.00 0.01 0 0
0 27
------- ------ -------- ---------- ---------- ---------- ----------
----------
total 4 0.00 0.05 0 0
0 27
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: SYS
Number of plan statistics captured: 1
Rows (1st) Rows (avg) Rows (max) Row Source Operation
---------- ---------- ----------
---------------------------------------------------
27 27 27 NESTED LOOPS (cr=0 pr=0 pw=0
time=17549 us cost=0 size=10260 card=30)
27 27 27 NESTED LOOPS (cr=0 pr=0 pw=0
time=1073 us cost=0 size=3630 card=30)
27 27 27 FIXED TABLE FULL X$KSLWT (cr=0 pr=0
pw=0 time=489 us cost=0 size=1710 card=30)
27 27 27 FIXED TABLE FIXED INDEX X$KSLED
(ind:2) (cr=0 pr=0 pw=0 time=233 us cost=0 size=64 card=1)
27 27 27 FIXED TABLE FIXED INDEX X$KSUSE
(ind:1) (cr=0 pr=0 pw=0 time=17986 us cost=0 size=221 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total
Waited
---------------------------------------- Waited ----------
------------
SQL*Net message to client 2 0.00
0.00
SQL*Net message from client 2 0.05
0.05
********************************************************************************
Comparing that to the DDL for GV$SESSION_WAIT verifies Mark's statement:
SQL> select view_definition from V$FIXED_VIEW_DEFINITION
2 where view_name='GV$SESSION_WAIT';
VIEW_DEFINITION
--------------------------------------------------------------------------------
select s.inst_id,s.kslwtsid,s.kslwtseq,e.kslednam,
e.ksledp1,s.kslwtp1,s.kslwtp1
r,e.ksledp2, s.kslwtp2,s.kslwtp2r,e.ksledp3,s.kslwtp3,s.kslwtp3r,
e.ksledclassid
, e.ksledclass#, e.ksledclass, decode(s.kslwtinwait, 0,decode
(bitand(s.ks
lwtflags,256), 0,-2, decode(round
(s.kslwtstime/1
0000), 0,-1, round
(s.kslwtstime/10
000))), 0), decode(s.kslwtinwait,0,round((s.kslwtstime
+s.kslwtltime)/1000
000), round(s.kslwtstime/1000000)), decode(s.kslwtinwait,1,'WAITING',
decode(b
itand(s.kslwtflags,256),0,'WAITED UNKNOWN TIME', decode(round
(s.kslwtstime/100
00),0,'WAITED SHORT TIME', 'WAITED KNOWN TIME'))), s.kslwtstime, decode
(s.ksl
wtinwait,0,to_number(null), decode(bitand
(s.kslwtflags,64),64,0,s.kslwttrem)),
s.kslwtltime from x$kslwt s, x$ksled e where s.kslwtevt=e.indx
It's not that I doubt Mark, I only want to be able to prove it.
--
http://mgogala.byethost5.com