oracle 優化器 執行計畫

2021-07-14 22:41:03 字數 1299 閱讀 7969

1、優化器種類 

rule

choose

first_rows_n

first_rows

all_rows(10g後預設)

2、訪問表的方法:全表掃瞄(table access full) rowid掃瞄(table access by user rowid|table access by index rowid)

3、訪問b樹索引的方法

索引唯一性掃瞄 index unique scan (等值查詢 只返回一行)

索引範圍掃瞄 index range scan ()

索引全掃瞄 index full scan (單塊 有序)

索引快速全掃瞄 index fast full scan (多塊讀 並行 無序)

索引跳躍式掃瞄 index skip scan (查詢條件未指定復合索引前導列但包括非前導列的情況 相當於union前導列各個不同值)

4、表連線:順序 方法 訪問單錶的方法

5、表連線型別: 內連線(自然連線) 外連線(左 右 全) 

6、表連線方法:

排序合併(sort merge join)

巢狀迴圈(nested loops join)

雜湊連線 (hash join)

笛卡兒連線 (cross join)

7、其他連線:反連線 半連線 星連線

8、awr sql report

9、檢視執行計畫:

explain plan

dbms_xplan

sqlplus autotrace

10046 event (tkprof) 

10053 event

awr statspack

10、計畫準確性:sql是否被真正執行,執行後才是準確的

11、位圖索引執行計畫:單鍵值掃瞄、範圍掃瞄、全掃瞄、快速全掃瞄、按位與、或、減 (單鍵值位圖索引也包含null 與b樹索引不同)

12、其他典型執行計畫:

and-equal(index merge)

index join

view

filter

sort(aggregateuniquejoingroup byorder bybuffer sort)10032 event

unionunion all

concat (in or)

connect by

13、執行計畫穩定性:

收集統計資訊

hint

sql profile(auto manual)

spm (auto manual)11g以後

優化器執行計畫選擇

1 資料準備 create table test1 as select d.trunc dbms random.value 0,100 as ran val from dba objects d 2 效能改善 2.1 寫法一 優化器還是很智慧型的,走了hash filter篩選,避開了filter連...

oracle巢狀迴圈的執行計畫優化

巢狀迴圈連線處理的兩個資料集被稱為外部迴圈 outer loop,也就是驅動資料來源,driving row soulce 和內部迴圈 inner loop 外部迴圈為左子節點,內部迴圈為右子節點 如圖10 一6 所示,當外部迴圈執行一次的時候,內部迴圈需要針對外部迴圈返回的每條記錄執行一次。外部迴...

oracle巢狀迴圈的執行計畫優化

巢狀迴圈連線處理的兩個資料集被稱為外部迴圈 outer loop,也就是驅動資料來源,driving row soulce 和內部迴圈 inner loop 外部迴圈為左子節點,內部迴圈為右子節點 如圖10 一6 所示,當外部迴圈執行一次的時候,內部迴圈需要針對外部迴圈返回的每條記錄執行一次。巢狀迴...