日期:2014-05-16  浏览次数:20413 次

如何手动找出当前数据库的top 5的SQL语句
大家在statspack报告中经常会去查看top5的语句,但想得到top5语句,其实非常之简单,完全没有必要兴师动众地去用statspack,而只要这条简单的SQL语句即可轻松搞定。
Statspack还是在需要分析event,latch,io 等时再去用吧。

SQL> select substr(sql_text, 1, 50) sql_text,
       buffer_gets,
       buffer_gets / executions avg
  from v$sqlarea
where executions > 0
   and buffer_gets > 100000
   and rownum < 5
order by 3;

SQL_TEXT                                           BUFFER_GETS        AVG
-------------------------------------------------- ----------- ----------
SELECT SU.NAME, SO.NAME, A.STATSTYPE#, A.INTCOL# F      139810         41
CALL MGMT_ADMIN_DATA.EVALUATE_MGMT_METRICS(:tguid,      223221 56.6838497
BEGIN dbms_stats_internal.flush_cache_stats; END;       187717 1003.83422
call dbms_stats.gather_database_stats_job_proc (       1385246 461748.667