针对多个子选择查询的Oracle查询优化

时间:2020-01-29 04:03:11

标签: sql oracle

我有一个使用多个子选择查询的查询。我认为可以优化。

select 
    ses.sid, 
    ses.username,
    ses.status,
    ses.machine 
    ses.last_call_et as "ELAPSED_TIME", 
    sessio.physical_reads, 
    ( sessio.consistent_gets + sessio.block_gets ) as "logical reads",
    ( select sum(sesstat.value) from V$SESSTAT sesstat join v$statname statname on statname.statistic# = sesstat.statistic# where SID = ses.sid and statname.name = 'user commits'  ) as "user commits",
    ( select sum(sesstat.value/100) from V$SESSTAT sesstat join v$statname statname on statname.statistic# = sesstat.statistic# where SID = ses.sid and statname.name like '%CPU used by this session%' ) as "CPU_USAGE", 
    ( select Round( 100* ( consistent_gets + block_gets - physical_reads ) / ( consistent_gets + block_gets ),2 ) from V$SESS_IO where (consistent_gets + block_gets) > 0 and sid = ses.sid ) as "cachehit Ratio %"
from V$SESSION ses
join V$SESS_IO sessio on ses.sid = sessio.sid
order by ses.sid asc;

0 个答案:

没有答案