oracle 使用explain plan分析查詢語句

天道酬勤厚積薄發發表於2016-10-08
oracle <wbr> <wbr>使用explain <wbr>plan分析查詢語句


如圖或者左邊建一個explain plan視窗.或直接點右邊

視窗如圖oracle <wbr> <wbr>使用explain <wbr>plan分析查詢語句

可以標題定製 選擇顯示哪些列

oracle <wbr> <wbr>使用explain <wbr>plan分析查詢語句

ok 進入正題:

1. 最簡單的 可以看到圖2 .簡單的查詢表裡所有資訊.  select Statement 查詢語句. 目標所有行 (滿足條件的所有行)查詢的方式是遍歷全表return all rows from a table 涉及到726行的資料

 

2.試試笛卡爾積

oracle <wbr> <wbr>使用explain <wbr>plan分析查詢語句
 MERGE JOIN CARTESIAN   表示做了笛卡爾積, 涉及到的行當然是兩個表的行數的乘積.. 至於buffer sort (通過索引訪問的自然是排好序的,全表掃描的自然就需要進行快取排序了 )(https://blogs.oracle.com/toddbao/entry/buffer_sort是buffer卻不是sort)(BUFFER SORT不是一種排序,而是一種臨時表的建立方式  是buffer 不是sort   應該是這樣)

3. in

oracle <wbr> <wbr>使用explain <wbr>plan分析查詢語句

這裡pzwz是有索引的, 依次拿第一個表的所有行去比較第二個表的所有行(錯了.看下圖).

4  not in

oracle <wbr> <wbr>使用explain <wbr>plan分析查詢語句
所以說. 言有易 言無難.     說有隻要找到一個就算有 .說沒有隻能找遍天涯海角都找不到才能說無
表示不懂 INDEX FULL SCAN 與 INDEX FAST FULL SCAN(http://blog.csdn.net/leshami/article/details/7452310)


5 exists 和 in

oracle <wbr> <wbr>使用explain <wbr>plan分析查詢語句

這倆的執行看起來是一樣的

 

要下班了.就這樣比較效率.看查詢的步驟.  以此來做調優

相關文章