Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

96

积分

0

好友

4

主题
1#
发表于 2012-7-23 17:07:10 | 查看: 5799| 回复: 1
DB:10g2

跪求awr上top sql的sql脚本。根据最近的2次awr id来得到top sql的脚本

如下:
SQL ordered by Elapsed Time
SQL ordered by CPU Time
SQL ordered by Gets
SQL ordered by Reads
SQL ordered by Executions
SQL ordered by Parse Calls
SQL ordered by Sharable Memory
SQL ordered by Version Count
SQL ordered by Cluster Wait Time
2#
发表于 2012-7-23 17:27:55
这样 extract AWR的意义不大, 你可以通过 10046  捕捉 awrrpt后台做了哪些查询, 列出部分示例:

SQL ordered by Elapsed Time
  1. with sqt as
  2.       (select elap, cput, exec, iowt, norm_val, sql_id, module, rnum
  3.          from (select sql_id, module, elap, norm_val, cput, exec, iowt,
  4.                       rownum rnum
  5.                  from (select sql_id
  6.                             , max(module) module
  7.                             , sum(elapsed_time_delta) elap
  8.                             , (100 * (sum(elapsed_time_delta) /
  9.                                       nullif(:dbtime,0))) norm_val
  10.                             , sum(cpu_time_delta) cput
  11.                             , sum(executions_delta) exec
  12.                             , sum(iowait_delta)     iowt
  13.                         from dba_hist_sqlstat
  14.                        where dbid = :dbid
  15.                          and instance_number = :inst_num
  16.                          and :bid < snap_id
  17.                          and snap_id <= :eid
  18.                        group by sql_id
  19.                        order by nvl(sum(elapsed_time_delta), -1) desc, sql_id))
  20.           where rnum < :tsql_max
  21.             and (rnum <= :tsql_min or norm_val > :top_pct_sql))
  22.     select /*+ NO_MERGE(sqt) */
  23.           nvl((sqt.elap/1000000), to_number(null)),
  24.           sqt.exec,
  25.           decode(sqt.exec, 0, to_number(null),(sqt.elap / sqt.exec / 1000000)),
  26.           sqt.norm_val,
  27.           decode(sqt.elap, 0, to_number(null), (100 * (sqt.cput / sqt.elap))),
  28.           decode(sqt.elap, 0, to_number(null), (100 * (sqt.iowt / sqt.elap))),
  29.           sqt.sql_id,
  30.           to_clob(decode(sqt.module, null,null, 'Module: ' || sqt.module)),
  31.           nvl(st.sql_text,to_clob('** SQL Text Not Available **'))
  32.      from sqt, dba_hist_sqltext st
  33.     where st.sql_id(+) = sqt.sql_id and st.dbid(+) = :dbid
  34.     order by sqt.rnum
复制代码
SQL ordered by CPU Time
  1. with sqt as
  2.       (select elap, cput, exec, uiot, norm_val, sql_id, module, rnum
  3.          from (select sql_id, module, elap, norm_val, cput, exec, uiot,
  4.                       rownum rnum
  5.                  from (select sql_id
  6.                             , max(module) module
  7.                             , sum(elapsed_time_delta) elap
  8.                             , (100 * (sum(cpu_time_delta) /
  9.                                       nullif(:tcpu,0))) norm_val
  10.                             , sum(cpu_time_delta) cput
  11.                             , sum(executions_delta) exec
  12.                             , sum(iowait_delta)     uiot
  13.                         from dba_hist_sqlstat
  14.                        where dbid = :dbid
  15.                          and instance_number = :inst_num
  16.                          and :bid < snap_id
  17.                          and snap_id <= :eid
  18.                        group by sql_id
  19.                        order by nvl(sum(cpu_time_delta), -1) desc, sql_id))
  20.           where rnum < :tsql_max
  21.             and (rnum <= :tsql_min or norm_val > :top_pct_sql))
  22.     select /*+ NO_MERGE(sqt) */
  23.           nvl((sqt.cput/1000000), to_number(null)),
  24.           sqt.exec,
  25.           decode(sqt.exec, 0, to_number(null), (sqt.cput / sqt.exec /1000000)),
  26.           sqt.norm_val,
  27.           nvl((sqt.elap/1000000), to_number(null)),
  28.           decode(sqt.elap, 0, to_number(null), (100 * (sqt.cput / sqt.elap))),
  29.           decode(sqt.elap, 0, to_number(null), (100 * (sqt.uiot / sqt.elap))),
  30.           sqt.sql_id,
  31.           to_clob(decode(sqt.module, null,null, 'Module: ' || sqt.module)),
  32.           nvl(st.sql_text,to_clob('** SQL Text Not Available **'))
  33.      from sqt, dba_hist_sqltext st
  34.     where st.sql_id(+) = sqt.sql_id and st.dbid(+) = :dbid
  35.     order by sqt.rnum
复制代码

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 02:16 , Processed in 0.048923 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569