【问题标题】:SQL ordered by Elapsed Time in AWR reportSQL 在 AWR 报告中按 Elapsed Time 排序
【发布时间】:2014-06-10 09:03:32
【问题描述】:

我试图分析为持续一小时的特定进程生成的AWR 报告。我试图找出哪个查询需要很多时间 在运行进程时。

当我浏览完报告后,我可以看到SQL ordered by Gets,SQL ordered by CPU Time,SQL ordered by Executions,SQL ordered by Parse Calls, SQL ordered by Sharable Memory,SQL ordered by Elapsed Time

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

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

Elapsed Time (s)    SQL Text
19,477.05            select abc.....
7,644.04             select def...

【问题讨论】:

    标签: oracle awr


    【解决方案1】:

    SQL Ordered by Elapsed Time ,包括在处理过程中花费大量执行时间的 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

    【讨论】:

      【解决方案2】:

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

      您应该使用其他工具,例如 sql_trace(使用 tkprof)或 dbms_profiler。它将专注于您自己的过程。 如果您使用的是 sql_trace,则需要连接到服务器(或询问 dba tem)来分析跟踪。

      【讨论】:

        【解决方案3】:

        在 SQL Ordered by Elapsed time 中,您始终需要检查 Execution 数较低且 Elapsed time 较高的查询。这总是有问题的 Query 。由于在这种情况下,经过时间是各个查询的定义任务,如果执行次数较少,则它更高,这意味着由于某种原因查询的执行不符合预期。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多