首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在oracle中查找所有sql id、sql文本、执行次数、两个AWR快照id之间的执行时间。

在oracle中查找所有sql id、sql文本、执行次数、两个AWR快照id之间的执行时间。
EN

Database Administration用户
提问于 2014-02-12 07:01:50
回答 4查看 54.1K关注 0票数 2

AWR报告提供了前10-20个SQL语句的SQL信息。是否有可能获得关于SQL语句的信息,而这些语句没有被列在最上面?如何在oracle中找到所有sql id、sql文本、执行次数、两个AWR快照id之间的执行时间?

EN

回答 4

Database Administration用户

回答已采纳

发布于 2014-02-12 22:53:43

这将在2个snap之间获取这些字段,只需替换where子句中的snap

代码语言:javascript
复制
select t.sql_id,
    t.sql_text,
    s.executions_total,
    s.elapsed_time_total
from DBA_HIST_SQLSTAT s, DBA_HIST_SQLTEXT t
where s.snap_id between 1000 and 2000;
票数 -2
EN

Database Administration用户

发布于 2014-02-12 08:20:24

您可以从以下视图中进行选择。

票数 2
EN

Database Administration用户

发布于 2021-07-01 09:54:56

代码语言:javascript
复制
  SELECT T.SQL_ID,
         MIN (SN.BEGIN_INTERVAL_TIME)             BEGIN_INTERVAL_TIME,
         MAX (SN.END_INTERVAL_TIME)             END_INTERVAL_TIME,
         MAX (CAST (DBMS_LOB.SUBSTR (T.SQL_TEXT, 2000) AS NVARCHAR2 (2000)))             SQL_TEXT,
         SUM (S.EXECUTIONS_DELTA)                   EXECUTIONS,
         SUM (S.ELAPSED_TIME_DELTA)                 ELAPSED_TIME
    FROM DBA_HIST_SQLSTAT S, DBA_HIST_SQLTEXT T, DBA_HIST_SNAPSHOT SN
   WHERE     T.SQL_ID = S.SQL_ID
         AND S.SNAP_ID = SN.SNAP_ID
         AND SN.BEGIN_INTERVAL_TIME >= SYSDATE - 1
         AND SN.END_INTERVAL_TIME <= SYSDATE
GROUP BY T.SQL_ID
ORDER BY ELAPSED_TIME DESC
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/58718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档