ocacle 執行計畫 Oracle執行計畫

2021-10-13 08:43:40 字數 1256 閱讀 3865

一:什麼是oracle執行計畫?

執行計畫是一條查詢語句在oracle中的執行過程或訪問路徑的描述

二:怎樣檢視oracle執行計畫?

因為我一直用的plsql遠端連線的公司資料庫,所以這裡以plsql為例:

①:配置執行計畫需要顯示的項:

工具  —>  首選項 —>   視窗型別  —>  計畫視窗  —>  根據需要配置要顯示在執行計畫中的列

執行計畫的常用列欄位解釋:

基數(rows):oracle估計的當前操作的返回結果集行數

位元組(bytes):執行該步驟後返回的位元組數

耗費(cost)、cpu耗費:oracle估計的該步驟的執行成本,用於說明sql執行的代價,理論上越小越好(該值可能與實際有出入)

時間(time):oracle估計的當前操作所需的時間

②:開啟執行計畫:

在sql視窗執行完一條select語句後按 f5 即可檢視剛剛執行的這條查詢語句的執行計畫

注:在plsql中使用sql命令檢視執行計畫的話,某些sql*plus命令plsql無法支援,比如set autotrace on

三:看懂oracle執行計畫

①:執行順序:

根據operation縮進來判斷,縮排最多的最先執行;(縮排相同時,最上面的最先執行)

例:上圖中 index range scan 和 index unique scan 兩個動作縮排最多,最上面的 index range scan 先執行;

同一級如果某個動作沒有子id就最先執行

同一級的動作執行時遵循最上最右先執行的原則

例:上圖中 table access by global index rowid 和 table access by index rowid 兩個動作縮排都在同一級,則位於上面的 table access by global index rowid 這個動作先執行;這個動作又包含乙個子動作 index range scan,則位於右邊的子動作 index range scan 先執行;

圖示中的sql執行順序即為:

index range scan  —>  table access by global index rowid  —>  index unique scan  —>  table access by index rowid  —>  nested loops outer  —>  sort group by  —>  select statement, goal = all_rows

( 注:plsql提供了檢視執行順序的功能按鈕(上圖中的紅框部分) )

mysql執行計畫 MySQL 執行計畫

1.執行計畫的定義 什麼是執行計畫 查詢計畫 呢?執行計畫就是一系列的操作步驟。sql是宣告性語言,它只告訴資料庫要查詢什麼,但並不告訴資料庫如何去查。資料庫所要做的就是基於演算法和統計資訊計算出一條最佳的訪問路徑。這個工作是由優化器來完成的。優化器會比較不同的執行計畫,然後選擇其中最優的一套。2....

mysql 生成執行計畫 MySQL執行計畫

和很多其他關係型資料庫不通,mysql並不會在生成查詢位元組碼來執行查詢。mysql生成查詢的一棵指令樹,然後通過儲存引擎執行完成這棵指令樹並返回結果。最終的執行計畫包含了重構查詢的全部資訊。如果某個查詢執行explain extended 之後,在執行show warnings,就可以看到重構出的...

mysql 查詢執行計畫 MySql執行計畫的檢視

一。什麼是資料庫執行計畫 利用乙個sql語句,你可能要server取出所有news表中的資訊.當server收到的這條sql的時候,第一件事情並不是解析它.如果這條sql沒有語法錯誤,server才會繼續工作.server會決定最好的計算方式.server會選擇,是讀整個news表好呢,還是利用索引...