【问题标题】:Oracle Elapsed time vs CPU time?Oracle 已用时间与 CPU 时间?
【发布时间】:2016-11-23 17:59:48
【问题描述】:

我有 oracle AWR 报告,我看到每个 sql 语句都提到了两个术语,但我不清楚它们有什么区别 我读了几篇文章,但我仍然能够掌握这个概念

假设我在下午 1 点到 1.10 点(即 600 秒)之间获取 Oracle 服务器的报告。假设有两个 cpu 并且它们正在全时运行,我相信这意味着总 cpu 时间 数据库服务器上的所有 java 进程为 1200 秒。对吧?

现在假设我有一个查询说select * from employee where id =1,它将经过时间显示为 10 秒,CPU 时间显示为 4 秒。现在我的问题是我相信 CPU 时间(4 秒) 是执行查询和获取结果的实际时间。但是为什么经过的时间是 10 秒呢?

经过的时间是否等于经过的时间 = CPU 时间 + 等待时间(非空闲等待时间)?

【问题讨论】:

标签: sql oracle


【解决方案1】:

如果查询的运行时间为 10 且 CPU 时间为 4,则查询需要 4 秒在 CPU 上执行,其余时间(6 秒)用于非空闲等待。

为了进行演示,请查看以下 Oracle Enterprise Manager 查询统计页面的屏幕截图。

其中Elasped Time(sec)=250.31又分为CPU时间和等待时间。

与上述相同,35.7% 的时间花在 CPU 上,其余时间花在等待(用户 I/O)上。

所以Elapsed Time=CPU Time + Wait Time(I/O, Network etc.)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多