2011-05-01 98 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