【问题标题】:Total cost of a query through Oracle's explain plan通过 Oracle 的解释计划进行查询的总成本
【发布时间】:2011-08-16 14:45:56
【问题描述】:

我对 Oracle 有点陌生,我对 Oracle 的解释计划有疑问。我对特定查询使用了“自动跟踪”功能。

SQL> SELECT * from myTable; 选择了 11 行。 经过:00:00:00.01

Execution Plan
----------------------------------------------------------
Plan hash value: 1233351234

----------------------------------------------------------------------------
| Id  | Operation         | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |        |    11 |   330 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| MYTABLE|    11 |   330 |     3   (0)| 00:00:01 |
----------------------------------------------------------------------------

我的问题是,如果我想计算这个查询的“总”成本,是 6 (3+3) 还是只有 3。假设我有一个更大的查询,计划中有更多的步骤,我是否必须将 cost 列中的所有值相加得到总成本,还是第一个值 (ID=0) 是查询的总成本?

【问题讨论】:

    标签: sql database oracle oracle11g


    【解决方案1】:

    成本为 3,计划显示为层次结构,子组件的成本已包含在父组件中。

    【讨论】:

    • 我很高兴我应该补充一点,父成本不只是子成本的总和,因为父操作也有一些非零成本。对于许多类型的非叶操作而言,该成本通常是最小的,因此它实际上显示为零,就像这里的情况一样。
    【解决方案2】:

    您可能还想查看以下回复: How do you interpret a query's explain plan?

    【讨论】:

      猜你喜欢
      • 2012-11-12
      • 2021-02-21
      • 2011-02-04
      • 2011-05-21
      • 2012-04-16
      • 2011-02-16
      • 1970-01-01
      • 2021-08-23
      • 2015-10-01
      相关资源
      最近更新 更多