首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWR报告中按运行时间排序的SQL

AWR报告中按运行时间排序的SQL
EN

Stack Overflow用户
提问于 2014-06-10 17:03:33
回答 3查看 13.4K关注 0票数 2

我试图分析为一个持续时间为一个小时的特定进程生成的AWR报告。我正在尝试找出在运行进程时哪个查询花费了大量时间。

当我浏览完报告时,我可以看到SQL ordered by GetsSQL ordered by CPU TimeSQL ordered by ExecutionsSQL ordered by Parse CallsSQL ordered by Sharable MemorySQL ordered by Elapsed Time等。

我可以从表SQL ordered by Elapsed Time中看到SQL Text

我的问题是:这是识别昂贵查询的正确方法吗?请在这方面提供建议。

代码语言:javascript
复制
Elapsed Time (s)    SQL Text
19,477.05            select abc.....
7,644.04             select def...
EN

回答 3

Stack Overflow用户

发布于 2014-06-11 18:38:02

SQL Ordered by Elapsed Time,包括在processing.We期间花费大量执行时间的SQL语句必须查看ExecutionsElapsed time per Exec (s)等以及Elapsed time进行分析。

例如,一个查询具有较低的Executions和较高的Elapsed time per Exec (s),并且此查询可以作为故障排除或优化的候选查询。

到目前为止,我找到的最好的参考资料:http://www.dbas-oracle.com/2013/05/10-steps-to-analyze-awr-report-in-oracle.html

票数 1
EN

Stack Overflow用户

发布于 2014-06-11 23:08:56

AWR用于查看数据库运行状况。因此,我认为这不是跟踪流程的好工具。

您应该使用其他工具,如sql_trace (带tkprof)或dbms_profiler。它会在你自己的进程上串连。如果您使用的是sql_trace,则需要连接到服务器(或请求到数据库)来分析跟踪。

票数 0
EN

Stack Overflow用户

发布于 2019-01-28 14:10:06

在按运行时间排序的SQL中,您总是需要检查执行次数较少、运行时间较长的查询。这将始终是有问题的查询。由于运行时间是为各个查询定义的任务,在本例中,如果执行次数越少,运行时间越高,这意味着由于某些原因,查询的执行没有达到预期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24136907

复制
相关文章

相似问题

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