oracle运维--05.监视执行sql(正在执行,已执行,执行性能查看)

1.正在执行的sql

select a.username, a.sid,b.SQL_TEXT,b.SQL_FULLTEXT,b.sql_id,b.EXECUTIONS
  from v$session a, v$sqlarea b 
where a.sql_address = b.address

2.执行过的sql

select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT
from v$sqlarea b
where b.FIRST_LOAD_TIME between '2020-06-20/01:52:00' and '2020-06-22/13:52:02'
order by b.FIRST_LOAD_TIME desc;

3.查找前10条性能最差sql;

SELECT *
  FROM (select PARSING_USER_ID,
               EXECUTIONS,
               SORTS,
               COMMAND_TYPE,
               DISK_READS,
               sql_text,
               sql_fulltext,
               parsing_schema_name
          FROM v$sqlarea
         order BY disk_reads DESC)
 where ROWNUM < 10;

4.查看占用IO较大的正在运行的session--->得到SPID

SELECT se.sid,
       se.serial#,
       pr.SPID,
       se.username,
       se.status,
       se.terminal,
       se.program,
       se.MODULE,
       se.sql_address,
       st.event,
       st.p1text,
       pr.PGA_USED_MEM,
       si.physical_reads,
       si.block_changes
  FROM v$session se, v$session_wait st,v$sess_io si,v$process pr
 WHERE st.sid = se.sid
   AND st.sid = si.sid
   AND se.PADDR = pr.ADDR
   AND se.sid > 6
   AND st.wait_time = 0
   AND st.event NOT LIKE '%SQL%'
 ORDER BY physical_reads DESC;

你可能感兴趣的:(oracle,性能,资源,运维)