Oracle 最佳化器的執行計畫瞭解 (1)

來源:互聯網
上載者:User

Oracle 10G 獲得執行計畫 有1 SQLPLUS  2 PL/SQLDEVELOPER 工具 3 TOAD

2 PL/SQL DEVELOPER

SELECT  count(*)FROM     user_beh_sum_day_201203  a  WHERE    a.operid = 1006                     AND      a.channelid = 12

選擇了這幾個觀察指標分別是

1 Description 說明

2 Depth 深度

3 Object Name 對像

4 Operation   操作

5 Cost             成本

6 Cardinality          基數

7 Filter predicates  過濾謂詞

8 access predicates  儲存謂詞

9 cpu cost                CPU 成本

10 io cost            IO成本

11 Temp space  暫存資料表空間使用量

12  bytes    數量的大小

重點 2 深度 從這裡可以看出 先執行哪步 ;3  成本 決定了該執行計畫是否被採用;6 基數 就是返回的行數 決定下一步該怎麼辦;7  過濾謂詞 決定哪幾個條件成為過濾不必要的行;8儲存謂詞,又名定位謂詞,就是如何找到資料,這裡看出哪幾個條件參與了定位;11 暫存資料表空間 磁碟排序。

如何看懂執行計畫呢? 關鍵 1說明 2 深度 3 對象 4 操作  這幾個英文組合應該大致瞭解你的SQL怎麼被執行的!

比如上面這個執行計畫來講: 從深度來看 第4步 是最先執行的步驟。該步驟說明是 index fast full scan ;  對象:IDX_USER_BEH_SUM_DAY_201203; 操作 INDEX。

那它先執行索引全掃描工作成本是7 返回基數也就是行數25行 沒有定位條件,過濾條件是A1.OPERID=1006 AND A1.CHANNELID=12。

第2步和第3步都是講全分區訪問

另外說明有PARATITION RANGE SINGLE 表示單分區訪問。

最後一步就是排序操作 因為這裡含有個COUNT(*) 統計函數,很顯然行數比較少,所以在記憶體完成了排序工作。

當如果數量很大的話,這樣的執行計畫是非常慢的。

 

另外 COST 成本的計算基本上等於IO成本+CPU成本; 基數=訪問對象的行數*選擇率;BYTES=基數*平均行大小。

COST成本訪問對象來分為 單表成本,串連成本,索引成本;

成本大意計算模式=(單塊讀取次數*單塊讀取時間+多塊讀取次數*多塊時間+CPU周期/CPU每秒周期)/單塊讀取時間.

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.