Oracle查看历史TOP SQL

来源:这里教程网 时间:2026-03-03 11:37:55 作者:
Oracle 查看历史TOP SQL

历史TOP SQL可以通过AWR直接查看, 但是有时AWR信息显示不全,默认只显示TOP 10, 可以通过dba_hist_sqltext,dba_hist_sqlstat等查看更详细的信息; ---查看快照信息 ---选择2018-06-14全天的快照6504-6528; ---conn chenjch/chenjch select SNAP_ID,        DBID,        to_char(BEGIN_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss'),        to_char(END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss'),        FLUSH_ELAPSED,        SNAP_LEVEL   from dba_hist_snapshot order by 1; ---1 查看2018-06-14全天SQL ordered by Elapsed Time   ---时间单位默认microseconds select a.sql_id,        a.module,        a.elap,        a.exec,        decode(a.exec, 0, to_number(null), (a.elap / a.exec)) elap_one,        b.sql_text   from dba_hist_sqltext b,        (select sql_id,                max(module) module,                sum(elapsed_time_delta) / 1000000 elap,                sum(executions_delta) exec           from dba_hist_sqlstat          where dbid = 1000919065            and instance_number = 1            and 6504 < snap_id            and snap_id <= 6528          group by sql_id) a  where a.sql_id = b.sql_id  order by elap desc; ---2 查看2018-06-14全天SQL ordered by Gets ---时间单位默认microseconds select a.sql_id,        a.module,        a.bget,              decode(a.exec, 0, to_number(null), a.bget / a.exec) get_per_exec,        a.exec,        (a.cput/1000000)/elap*100 CPU,          a.elap,        b.sql_text   from dba_hist_sqltext b,        (select sql_id,                max(module) module,                sum(buffer_gets_delta) bget,                sum(executions_delta) exec,                sum(cpu_time_delta) cput,                sum(elapsed_time_delta) / 1000000 elap           from dba_hist_sqlstat          where dbid = 1000919065            and instance_number = 1            and 6504 < snap_id            and snap_id <= 6528          group by sql_id) a  where a.sql_id = b.sql_id  order by bget desc; ---3 查看2018-06-14全天SQL ordered by Reads ---时间单位默认microseconds    select a.sql_id,        a.module,        a.diskread,        a.exec,        decode(a.exec, 0, to_number(null), a.diskread / a.exec) diskread_one,        (a.cput/1000000)/elap*100 CPU,        a.elap,        b.sql_text   from dba_hist_sqltext b,        (select sql_id,                max(module) module,                sum(disk_reads_delta) diskread,                sum(executions_delta) exec,                sum(cpu_time_delta) cput,                sum(elapsed_time_delta) / 1000000 elap           from dba_hist_sqlstat          where dbid = 1000919065            and instance_number = 1            and 6504 < snap_id            and snap_id <= 6528          group by sql_id) a  where a.sql_id = b.sql_id  order by diskread desc;   欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

相关推荐