查询oracle耗时sql,[oracle] oracle查看执行时间长的sql

oracle查看执行时间长sql

1.查看发生时间的snap_id

select snap_id,dbid,instance_number,startup_time,begin_interval_time,end_interval_time from dba_hist_snapshot where begin_interval_time between to_date('20200525 08:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('20200601 08:00:00','yyyy-mm-dd hh24:mi:ss') and instance_number=1 order by snap_id;

2.查看执行时间top10的sql

SELECT a.*

FROM (  SELECT trunc(NVL ( (sqt.elap / 1000000), TO_NUMBER (NULL)),3) elap_time,

trunc(NVL ( (sqt.cput / 1000000), TO_NUMBER (NULL)),3)  cpu_time,

sqt.exec,

trunc(DECODE (sqt.exec,

0, TO_NUMBER (NULL),

(sqt.elap / sqt.exec / 1000000)),3)

avg_time,

trunc((  100

* (  sqt.elap

/ (SELECT SUM (e.VALUE) - SUM (b.VALUE)

FROM DBA_HIST_SYSSTAT b, DBA_HIST_SYSSTAT e

WHERE     B.SNAP_ID = 42304

AND E.SNAP_ID = 42486

AND B.DBID = 3230440875

AND E.DBID = 3230440875

--AND B.INSTANCE_NUMBER = 1

--AND E.INSTANCE_NUMBER = 1

AND e.STAT_NAME = 'DB time'

AND b.stat_name = 'DB time'))),3)

norm_val,

(DECODE (sqt.module, NULL, NULL, 'Module: ' || sqt.module))

connecte_modul,

sqt.sql_id,

NVL (TO_CHAR (SUBSTR (st.sql_text, 1, 3800)),' ** SQL Text Not Available ** ')SQL_TEXT

FROM (  SELECT sql_id,

MAX (module) module,

SUM (elapsed_time_delta) elap,

SUM (cpu_time_delta) cput,

SUM (executions_delta) exec

FROM dba_hist_sqlstat

WHERE     dbid = 3230440875

--AND instance_number = 1

AND 42304 < snap_id

AND snap_id <= 42486

GROUP BY sql_id) sqt,

dba_hist_sqltext st

WHERE st.sql_id(+) = sqt.sql_id AND st.dbid(+) = 3230440875

ORDER BY NVL (sqt.elap, -1) DESC, sqt.sql_id) a

WHERE     (ROWNUM <= 10 OR a.norm_val > 1)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值