2011-05-01 66 views
7

我对Oracle有点新,我对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个。假设我有一个大在计划中使用更多步骤进行查询,是否必须将成本列中的所有值相加以获得总成本,还是第一个值(ID = 0)是查询的总成本?

回答

7

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

+0

感谢您的快速回复。 – Maya 2011-05-01 21:17:11

+0

我的荣幸 我应该补充说,父母成本不是_just_子成本的总和,因为父母操作也有一些非零成本。对于许多类型的非叶作业而言,这种成本通常是最小的,所以它实际上显示为零,就像这里的情况一样。 – BeeOnRope 2011-05-01 21:21:17