sql調優第一步explain plan執行計劃
阿新 • • 發佈:2018-12-20
explain plan 是sql的執行計劃 。如果一條sql平時執行的好好的,有一天突然變得很差,如果排除系統資源和阻塞的原因,基本可以斷定是執行計劃出現了問題。
執行計劃可以定位sql效能的問題。
2.使用sql語句
EXPLAIN PLAN FOR SELECT * FROM DAVE;
SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));
或者
select * from table(dbms_xplan.display);
欄位解釋
ID:一個序號,不是執行的先後順序,執行先後根據縮排判斷
Operation:當前操作的內容
Rows:當前操作的Cardinality,Oracle估計當前操作的返回結果集
CPU:Oracle計算出的一個數值,用於說明SQL執行的代價
Time:估計當前操作時間
db block gets:從buffer cache中讀取的block的數量
consistent gets:從buffer cache中讀取的undo資料的block數量
physical reads:從磁碟讀取的block的數量
redo size:DML生成的redo的大小
sorts(memory):在記憶體執行的排序量
sorts(disk):在磁碟上上執行的排序量
Physical Reads通常是我們最關心的,如果這個值很高,說明要從磁碟請求大量的資料到Buffer Cache裡,通常意味著系統裡存在大量全表掃描的SQL語句,這會影響到資料庫的效能,因此儘量避免語句做全表掃描,對於全表掃描的SQL語句,建議增加相關的索引,優化SQL語句來解決