1.从v$sqlarea中找出最多的物理读的sql
 
  
  1. select b.username, 
  2.        a.DISK_READS, 
  3.        a.EXECUTIONS, 
  4.        a.DISK_READS / decode(a.EXECUTIONS, 0, 1, a.EXECUTIONS) ratio, 
  5.        a.SQL_TEXT 
  6.   from v$sqlarea a, dba_users b 
  7.  where a.PARSING_USER_ID = b.user_id 
  8.    and a.DISK_READS > 10000 
  9.    and b.username not in ('SYS''SYSTEM'
  10.  order by a.DISK_READS desc
 
2.从v$sqlarea中找出最多的逻辑读的sql
 
  
  1. select b.username, 
  2.        a.BUFFER_GETS, 
  3.        a.EXECUTIONS, 
  4.        a.BUFFER_GETS / decode(a.EXECUTIONS, 0, 1, a.EXECUTIONS) ratio, 
  5.        a.SQL_TEXT 
  6.   from v$sqlarea a, dba_users b 
  7.  where a.PARSING_USER_ID = b.user_id 
  8.    and a.BUFFER_GETS > 10000 
  9.    and b.username not in ('SYS''SYSTEM'
  10.  order by a.DISK_READS desc
 
3.从v$sql中选出最占用资源的sql
 
  
  1. select * 
  2.   from (select a.ADDRESS, 
  3.                a.SQL_TEXT, 
  4.                rank() over(order by a.BUFFER_GETS descas rank_bufgets, 
  5.                to_char(100 * ratio_to_report(a.BUFFER_GETS) over(), '999.99'as pct_bufgets 
  6.           from v$sql a 
  7.          where a.PARSING_SCHEMA_NAME = 'PMIS'
  8.  where rank_bufgets < 11 
 
4.在第3个sql中可能存在sqltext是一样的,但是是不同的子cursor的语句,那么可以查询v$sql_shared_cursor来查询为什么同一个sqltext的sql会有不同的执行计划
 
  
  1. select * from v$sql_shared_cursor c where c.ADDRESS='&address'